只是想在body标签中添加一个class ="myClass".在MVC3视图页面中是否有任何html助手或其他东西可以做到这一点?请指教,谢谢.
Len*_*ncy 17
这与Aaron的解决方案非常相似,但没有一个部分的重量(至少在我看来,它是针对比单个字符串更大的内容块).最简单的方法是使用ViewBag传递变量.
在你的布局中,只需打印出body标签的类,以及任何其他页面特定的变量(页面标题,额外的css/js脚本等......)
_Layout.cshtml:
<html>
<title>@ViewBag.Title</title>@* Can easily add in per page titles too *@
<body class="@ViewBag.BodyClass">
@RenderBody()
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后,视图中设置的变量将向上传递到布局:
Index.cshtml:
@model MyViewModel
@{
ViewBag.Title = "This page title!";
ViewBag.BodyClass = "...";
}
Run Code Online (Sandbox Code Playgroud)
Aar*_*ron 15
虽然您可以完全控制HTML,但解决方案是需要的,所以这里有一个;-)
在_layout.cshtml页面中
<body class="@RenderSection("BodyClass", false)">
Run Code Online (Sandbox Code Playgroud)
这将在所有子页面中查找一个部分,但如果找不到,则不要担心
然后在您的孩子视图中执行此操作
@section BodyClass {productList}
Run Code Online (Sandbox Code Playgroud)
保持一行,然后输出的HTML看起来很好,你也可以建立类名.
@section BodyClass {productList generic}
Run Code Online (Sandbox Code Playgroud)
这个想法适用于DOM-Ready页面特定代码,为什么不检查 http://paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/
或者我的扩展版本 https://github.com/AaronLayton/H5BP-Core
我的方式允许您执行页面特定的代码,但允许您将所有Javascript保存在单独的页面中,以便每个页面变得易于管理.最后一步是将所有JS连接并缩小为1个文件;-)
| 归档时间: |
|
| 查看次数: |
7380 次 |
| 最近记录: |