我有一个布局页面,它由标准页眉和页脚以及 RenderBody()
函数组成。我的页眉包含一个导航,顶部有大按钮作为系统中的模块
Customer Quote Jobs etc
我的问题是我希望能够根据单击的按钮为这些按钮提供一类在加载时处于事件状态的按钮。我是否需要在 javascript 中执行此操作,或者我是否可以将模型数据或某些变量传递给布局文件以进行设置?
最佳答案
我使用以下函数来实现这一点:
public static string MarkActive<TModel>(this HtmlHelper<TModel> html,string url)
{
if (html.ViewContext.HttpContext.Request.Url.LocalPath
.ToLower().StartsWith(url.ToLower().Trim()))
return "active";
else
return null;
}
这是我保存在 HtmlExtensions.cs
文件中的扩展方法。我这样使用它:
<ul>
<li class="@Html.MarkActive("/home")"><a href="/home">Home</a></li>
<li class="@Html.MarkActive("/microsite"><a href="/microsite">View Microsite</a></li>
<li class="@Html.MarkActive("/settings")"><a href="/settings/">Settings</a></li>
<li><a href="/account/logout">Log out</a></li>
</ul>
可能有更好的解决方案,但这对我有用。简而言之,您应该检查页面的 HttpContext
。
关于c# - 更改布局文件 mvc4 中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14501926/