我需要从视图文件(.aspx)向body标签添加class属性,但标签位于主文件中。如何从视图中访问body标签?
答案 0 :(得分:0)
在您的视图输出中,您只需添加一个jQuery客户端脚本来执行此操作,该脚本将在您的页面拼接在一起时运行:
$('body').addClass('yourClass');
另一种方法是将类数据存储在控制器中,如:
ViewData["MasterPageBodyClass"] = "yourClass";
然后在MasterPage
视图中,您可以检查是否存在此信息并添加(如果存在):
<%
string bodyClass = "";
if (ViewData["MasterPageBodyClass"] != null)
{
bodyClass = "class=\"" + ViewData["MasterPageBodyClass"].ToString() + "\"";
}
%>
<body <%= bodyClass %>>
只有需要将类附加到正文的控制器操作实际上需要将该类存储在ViewData
中,其他所有操作都可以忽略它。
答案 1 :(得分:0)
认为一个更简单的解决方案就是在master属性中为class属性设置占位符:
<body class='someOtherClass <asp:ContentPlaceHolder ID="BodyCssOverrides" runat="server" />' >
然后在你的视图中设置正确的类:
<asp:Content ContentPlaceHolderID="BodyCssOverrides" runat="server">yourBodyClass</asp:Content>
无需脚本来设置它或ViewData。
请记住,masterPage是一个可以帮助您而不会妨碍您的模板, 如果某些内容需要在视图之间进行更改 - 请为其创建一个placeHolder