在我的每个视图中,我不断添加与视图关联的样式和脚本。它是我们介绍的应用程序中的约定,但我们希望自动应用此约定。
目前我们的观点如下:
<p>This is the view!</p>
@section styles {
<link rel="stylesheet" href="~/Views/Home/Index.css" />
}
@section scripts {
<script src="~/Views/Home/Index.js"></script>
}
有没有办法自动添加样式和脚本?也许在控制器的基类中,例如:
public class BaseController : Controller
{
string controller = RouteData.Values["controller"].ToString();
string action = RouteData.Values["action"].ToString();
string script = string.Format("<script src=\"~/Views/{0}/{1}.js\"></script>", controller, action);
string style = string.Format("<link rel=\"stylesheet\" href=\"~/Views/{0}/{1}.css\" />", controller, action);
// Todo: How to add script and style to sections programmatically???
}
答案 0 :(得分:2)
您可以在视图中使用控制器/操作名称值,特别是在布局中。只需编辑您的布局并在头部添加:
<link rel="stylesheet" href="~/Views/@(ViewContext.RouteData.Values["controller"])/@(ViewContext.RouteData.Values["action"]).css" />
在结束身体标记之前,添加:
<script src="~/Views/@(ViewContext.RouteData.Values["controller"])/@(ViewContext.RouteData.Values["action"]).js"></script>