c# - 更改布局文件 mvc4 中的类

标签 c# asp.net-mvc-3 asp.net-mvc-4

我有一个布局页面,它由标准页眉和页脚以及 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/

相关文章:

c# - ShellView 或 MainWindow 作为应用程序中的主视图?

c# - ASP.Net MVC 3 Razor Response.Write 位置

asp.net-mvc - ASP.NET MVC 3 Beta 1阻止对Razor View 的访问

c# - jQuery UI 日期选择器无法与 asp.net mvc 一起正常工作

c# - 验证不可见

c# - 使用 ToastNotificationActionTrigger 从后台任务中检索 toast 参数

c# - 创建一个简单的 C# 包装器来清理代码

C#。 double 的奇怪行为

asp.net-mvc-3 - 将 HtmlAttributes 添加到模板

c# - 设置单元测试以使用 Unity 测试 Controller