要将具有.css扩展名的请求转到控制器,您可以使用ASP.NET Core中的自定义路由。
首先,您需要创建一个自定义路由约定来处理具有.css扩展名的URL。在Startup.cs文件的Configure方法中添加以下代码:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "css",
template: "{controller}/{action}/{id}.{ext}",
defaults: new { controller = "Home", action = "Index" },
constraints: new { ext = "css" });
});
这将使用自定义路由模板来处理具有.css扩展名的URL。默认情况下,它将路由到HomeController的Index方法,但您可以根据自己的需求进行更改。
接下来,在HomeController中创建一个名为Index的动作方法:
public IActionResult Index(string id)
{
// 根据id参数加载对应的.css文件内容
var cssContent = LoadCssContent(id);
// 返回CSS内容
return Content(cssContent, "text/css");
}
在此示例中,我们假设LoadCssContent方法为根据id参数加载.css文件内容的方法。您可以根据自己的需求进行更改。
最后,您可以在浏览器中访问具有.css扩展名的URL,例如:/Home/Index/styles.css,它将路由到HomeController的Index方法,并返回CSS内容。
请注意,这只是一种解决方案,您可以根据自己的需求进行修改和扩展。