Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 菜单的局部视图工作不正常_Asp.net Mvc_Razor_Asp.net Mvc Partialview - Fatal编程技术网

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">

在我的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">
            <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。。但是通过新的{}没有害处