我正在使用剃刀处理 asp.net mvc 3。我的项目中有一个布局(主)页面。它包含一个带有 4 个链接的侧面板和 viewpage (@RenderBody) 的位置。当用户点击link1时,它重定向到viewpage1并且应该选择link1,当他点击link2时,它重定向到viewpage2并且应该选择link2,依此类推。它很好地重定向到所需的页面,但它总是选择链接 1,尽管我点击了链接 2、链接 3、链接 4。我如何从单个视图页面中选择布局页面中的适当链接。引导我。
问问题
528 次
1 回答
0
通过选中我猜你的意思是使用 CSS 突出显示,不是吗?如果是这种情况,我建议您编写一个自定义 HTML 帮助程序来生成这些链接:
public static IHtmlString MenuItem(
this HtmlHelper htmlHelper,
string text,
string action,
string controller
)
{
var li = new TagBuilder("li");
var routeData = htmlHelper.ViewContext.RouteData;
var currentAction = routeData.GetRequiredString("action");
var currentController = routeData.GetRequiredString("controller");
if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) &&
string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
{
li.AddCssClass("active");
}
li.InnerHtml = htmlHelper.ActionLink(text, action, controller).ToHtmlString();
return new HtmlString(li.ToString());
}
然后在您的布局中使用帮助器:
<ul>
@Html.MenuItem("link 1", "Action1", "Controller1")
@Html.MenuItem("link 2", "Action2", "Controller2")
...
</ul>
现在剩下的就是.active
在你的 CSS 类中定义规则:
.active {
... something fancy to pop the currently selected link from the others
}
于 2012-07-10T07:07:57.883 回答