MVC3剃刀代码汤 - 模板?

时间:2012-04-14 15:47:10

标签: c# asp.net-mvc-3 templates razor

我正在尝试创建导航器以在某些页面上显示突出显示。我有以下内容:

<li>
    @if (Request.Url.AbsoluteUri.ToLowerInvariant().Contains("registration"))
    {
        @Html.ActionLink("Request an Invite", "index", "registration", null, new { @class = "active" })
    }
    else
    {
        @Html.ActionLink("Request an Invite", "index", "registration")
    }
</li>
<li>
    @if (Request.Url.AbsoluteUri.ToLowerInvariant().Contains("login"))
    {
        @Html.ActionLink("Login", "index", "login", null, new { @class = "active" })
    }
    else
    {
        @Html.ActionLink("Login", "index", "login")
    }
</li>

我确定有一种更好的方法可以减少这种情况吗?有人可以帮助初学者吗?

由于 詹姆斯伍德利

1 个答案:

答案 0 :(得分:0)

在我看来,为避免潜在的类似网址上的错误,您可以使用

var contorller = @ViewContext.RouteData.Values["controller"]
var action = @ViewContext.RouteData.Values["action"]

然后为了使你的代码更小,我将使用内联条件

@Html.ActionLink("Request an Invite", "index", "registration", null, (controller = "Home" && action == "registration") ? new { @class = "active" } : null)

我希望你明白这个想法