从子页在MVC选择母版页上右键菜单中 [英] select right menu on master page in MVC from child page
本文介绍了从子页在MVC选择母版页上右键菜单中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个共享 _layout.cshtm
文件一对夫妇列表项(母版页)在我的MVC应用程序。
I have a couple of list items in a shared _layout.cshtm
file (master page) in my MVC application.
是这样的:
<ul>
<li>Home</li>
<li>about</li>
<li>contact</li>
<li>blog</li>
</ul>
当用户在一个网页,我要回家里
项目有类选
,就像这样:
when the user is in a homepage, I want home li
item to have class selected
, like so:
<li class="selected">Home</li>
和等。什么是做到这一点的最好方法是什么?
and so on. What is the best way to do this?
在定期asp.net网站上,我曾经有在母版页的方法,并呼吁从子页,但在MVC中的方法,我不知道该怎么做。
In regular asp.net website, I used to have a method in master page and call that method from child page but in MVC I am not sure what to do.
感谢。
推荐答案
您可以编写一个自定义的helper方法:
You could write a custom helper method:
public static MvcHtmlString 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("selected");
}
li.SetInnerText(text);
return MvcHtmlString.Create(li.ToString());
}
和则:
<ul>
@Html.MenuItem("Home", "home", "home")
@Html.MenuItem("About", "about", "home")
@Html.MenuItem("Contact", "contact", "home")
@Html.MenuItem("Blog", "blog", "home")
</ul>
助手检查当前的动作和控制器,如果他们匹配一个作为参数传递给助手通过其追加选
CSS类的李
。
这篇关于从子页在MVC选择母版页上右键菜单中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文