Asp.net mvc 菜单的局部视图工作不正常
在我的asp.net mvc应用程序中,我创建了一个显示菜单的局部视图。是这样的Asp.net mvc 菜单的局部视图工作不正常,asp.net-mvc,razor,asp.net-mvc-partialview,Asp.net Mvc,Razor,Asp.net Mvc Partialview,在我的asp.net mvc应用程序中,我创建了一个显示菜单的局部视图。是这样的 @model InstaFood.Core.Institution <div class="row"> <div class="large-12 columns"> <nav class="top-bar" data-topbar="" role="navigation"> <ul class="title-area">
@model InstaFood.Core.Institution
<div class="row">
<div class="large-12 columns">
<nav class="top-bar" data-topbar="" role="navigation">
<ul class="title-area">
<li class="name">
<h1 class="show-for-small-only"><a href="#">Menu</a></h1>
</li>
<li class="toggle-topbar menu-icon"><a href="#"><span></span></a>
</li>
</ul>
<section class="top-bar-section">
<ul class="left">
<li class="divider"></li>
<li>@Html.ActionLink("Home", "Dashboard", "Institution", new { id = @Model.Id })</li>
@*weird bug of id not being passed on to the view patients view*@
<li class="has-dropdown">
<a href="#">View</a>
<ul class="dropdown">
<li>@Html.ActionLink("Patients", "ViewPatients", "Institution", new { id = @Model.Id })</li>
</ul>
</li>
</ul>
</section>
</nav>
</div>
生成的链接如下所示
http://www.instafood.com/Institution/Dashboard/00204a50-ef7b-46bb-8104-b887c91d7f71?Length=11
http://www.instafood.com/Institution/ViewPatients?Length=11
我不确定它为什么在这里附加Length=11,但至少它是有效的
但同样的事情在这里不起作用
@Html.ActionLink("Patients", "ViewPatients", "Institution", new { id = @Model.Id })
此处生成的链接如下所示
http://www.instafood.com/Institution/Dashboard/00204a50-ef7b-46bb-8104-b887c91d7f71?Length=11
http://www.instafood.com/Institution/ViewPatients?Length=11
我的控制器对ViewPatients的操作是
public ActionResult ViewPatients(String id)
{
Institution institution = Institution.Get(id);
return View(institution);
}
有人知道为什么会发生这种情况以及如何解决吗 更正@Html.ActionLink,如图所示:-
@Html.ActionLink("Patients", "ViewPatients", "Institution", new { id = Model.Id }, new {})
@Html.ActionLink("Home", "Dashboard", "Institution", new { id = Model.Id },new{})
如上所示,在@Html.ActionLink中添加新的{}一个额外的空htmlattribute对象作为第5个参数,您的问题就会解决
或者正如webnoob在评论部分正确指出的那样,我们也可以使用空值来代替新的{}。您可以发布控制器的操作方法吗?当然可以,刚刚编辑了我的问题。您可以显示您的RouteConfig吗?我认为这是可以定义长度=11的最明显的地方。它起作用了,长度=11消失了,它开始起作用了。但是你能解释一下发生了什么吗?@mohsinali1317..实际上,@Html.ActionLink把你的第三个参数当作对象路由,但实际上它是一个控制器名,这就是为什么它显示长度=11,因为机构有11个字符长,所以如果我们使用新的{}如我的回答所示,它将使用一个适当的actionlink重载,第一个参数为linktext,第二个参数为actionname,第三个参数为controller,第四个参数为object route,第五个参数为HtmlatAttribute的空对象。我没有进行向下投票,但这里不需要新的{},只需传递null。@webnoob…是的,我们也可以传递null。。但是通过新的{}没有害处