Asp.net mvc 3 Mvc3实现自定义操作链接
我有.NETMVC3网站。我必须实现顶部菜单。每个菜单标签都指向他的操作并显示另一个视图。这就是我现在看到的:Asp.net mvc 3 Mvc3实现自定义操作链接,asp.net-mvc-3,Asp.net Mvc 3,我有.NETMVC3网站。我必须实现顶部菜单。每个菜单标签都指向他的操作并显示另一个视图。这就是我现在看到的: <ul id="menu"> <li>@Html.ActionLink("Home", "Index", "Home")</li> <li>@Html.ActionLink("Products", "Products", "Home")</li> <li>@Html.
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Products", "Products", "Home")</li>
<li>@Html.ActionLink("Pricing", "Pricing", "Home")</li>
<li>@Html.ActionLink("Our Team", "OurTeam", "Home")</li>
<li>@Html.ActionLink("Contact Us", "ContactUs", "Home")</li>
</ul><!-- /menu -->
“文本”是Home(例如第一个li)
当前ActionLink必须将类“Selected”添加到锚点
我怎么能做到?请帮忙
p、
我可以使用当前视图的“选定”类为我网站中的每个视图添加此菜单,但这不是一个好的解决方案。您可以使用此
ActionLink
重载添加类
:
<li>@Html.ActionLink("Home", "Index", "Home", null, new {@class = ":selected"})</li>
如果我理解正确,您希望将“selected”类置于当前显示操作。 通过查看以下内容,可以在视图中执行检查:
HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()
HttpContext.Current.Request.RequestContext.RouteData.Values["action"].ToString()
然后,按照前面答案中所示的方式将“选定”类放入actionlink
<li>@Html.ActionLink("Home", "Index", "Home", null, new {@class = ":selected"})</li>
@Html.ActionLink(“Home”、“Index”、“Home”、null、new{@class=“:selected”})
就我个人而言,我将创建一个ViewModel,其中包含一个“MenuAction”列表,该列表显示除路由值之外的bool属性“Selected”。从视图来看,Imo将更干净地处理数据。您将静态“选定”类添加到主链接。我需要将“选定”动态添加到当前ActionLink@user1086344. 您想何时添加它?例如,当您单击“产品”时,页面将加载“产品”视图,“选定”类必须添加到“产品”锚点,并从以前的锚点删除。@user1086344。我会给每个
一个id
,并给它:selected
和jquery
:$(“#产品”).addClass(“:selected”)
您可以添加一个脚本,该脚本接受控制器并将:selected
赋予
,其id与控制器名称匹配。@user1086344。服务器端有什么问题?这是一个很好的解决方案。但我的菜单是局部视图,从布局中调用。因此,HttpContext.Current.Request.RequestContext.RoutedData.Values[“action”].ToString()将始终返回此部分的名称,并且此名称将永远不会与当前操作名称匹配。调用类似于@Html.action(“MainMenu”,“Menu”)的内容。然后在controllerMy错误中执行逻辑并准备视图,我使用var currentAction=htmlHelper.ViewContext.RoutedData.GetRequiredString(“操作”)而不是HttpContext.Current.Request.RequestContext.RoutedData.Values[“action”].ToString()。现在是工作。谢谢你知道我如何定制锚定html:texttext吗?你可以编写自己的html扩展。公共静态MvcHtmlString MySpan(此HtmlHelper html,字符串myText)
HttpContext.Current.Request.RequestContext.RouteData.Values["controller"].ToString()
HttpContext.Current.Request.RequestContext.RouteData.Values["action"].ToString()
<li>@Html.ActionLink("Home", "Index", "Home", null, new {@class = ":selected"})</li>