2014-12-05 2 views
0

내 asp.net mvc 응용 프로그램에서 나는 메뉴를 표시하기위한 부분보기를 만들었습니다. 그것은 이것과 같습니다.부분보기가 제대로 작동하지 않는 메뉴의

당신은 내가 ID가 ViewPatients보기에 전달되지 않도록이 문제를 데 주석에서 볼 수 있듯이

@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> 
. 이 링크는 여기에 길이 = 11을 추가하지만 적어도 작동 왜 확실하지 오전이

http://www.instafood.com/Institution/Dashboard/00204a50-ef7b-46bb-8104-b887c91d7f71?Length=11 

같은 외모를 생산

@Html.ActionLink("Home", "Dashboard", "Institution", new { id = @Model.Id }) 

여기에 작동합니다.

그러나 같은 일이 여기서 일하지 않는

@Html.ActionLink("Patients", "ViewPatients", "Institution", new { id = @Model.Id }) 

ViewPatients이

http://www.instafood.com/Institution/ViewPatients?Length=11 

내 컨트롤러 액션이

public ActionResult ViewPatients(String id) 
    { 
     Institution institution = Institution.Get(id); 
     return View(institution); 
    } 

어느 하나처럼 여기에서 생산 된 링크를 본다 왜 이런 일이 일어나고 어떻게 해결 될 수 있는지 알아라. 올바른

+0

컨트롤러의 작업 방법을 게시 할 수 있습니까? –

+0

예, 확실하게 제 질문을 수정했습니다. – mohsinali1317

+0

당신의'RouteConfig'를 보여줄 수 있습니까? 나는 그것이 길이 = 11이 정의 될 수있는 가장 명백한 곳이라고 생각한다. –

답변

0

당신의 @Html.ActionLink 같이 : -

new{} @Html.ActionLink 5 번째 매개 변수로 추가 빈 htmlattribute 객체를 추가하고 문제가 해결됩니다 위와 같이
@Html.ActionLink("Patients", "ViewPatients", "Institution", new { id = Model.Id }, new {}) 

@Html.ActionLink("Home", "Dashboard", "Institution", new { id = Model.Id },new{}) 

)

을하거나 제대로 가 가리키는 webnoobnew{} 대신 댓글 섹션에서 null을 사용할 수도 있습니다.

+0

작동합니다. 길이 = 11이 사라지고 작동하기 시작합니다. 하지만 무슨 일이 일어 났는지 설명 할 수 있니? – mohsinali1317

+0

@ mohsinali1317..actualally'@Html.ActionLink()'는 세 번째 매개 변수를 객체 경로로 취급하지만 실제로는 'Institution'이 11 자 길이이기 때문에 길이가 11 인 이유는 컨트롤러 이름입니다. , 그래서 만약 우리가'new {}'를 사용한다면, 제 1 파라미터를 linktext로, actionname을 두번째로, 컨트롤러를 세번째로, 네 번째를 객체 경로로, 다섯 번째를 htmlattribute의 빈 객체로 사용하여 actionlink의 적절한 오버로드를 사용할 것입니다 . –

+0

@downvoter plz ....을 (를) 돌봐 주려고 신경을 써라. –