2012-04-12 3 views
2

응용 프로그램의 드롭 다운 목록을 렌더링하는 부분보기가 있습니다. 드롭 다운에서 항목을 선택하면 다른 부분보기가 렌더링됩니다.일부보기를 재사용 가능하게 만들기

이 드롭 다운 목록은 응용 프로그램의 일부 위치에 있지만 각 페이지에서 응용 프로그램을 선택할 때 다른 부분보기를 렌더링해야합니다. 드롭 다운을 재사용 할 수있는 쉬운 방법이 있습니까? 즉 부분 뷰가 렌더링 된 페이지에 따라 다른 data_url을 설정해야합니다.

부분보기 :

<script type="text/javascript"> 
    $(function() { 

     $('#ApplicationsDropdownList').change(function() { 
      var url = $(this).data('url'); 
      var applicationId = $(this).val(); 
      $('#RolesForApplication').load(url, { applicationId: applicationId}) 
     }); 
    }); 

</script> 

<div> 

<label for='ApplicationsDropdownList'>Application:</label> 

@Html.DropDownListFor(
     x => x.SelectedApplicationId, 
     new SelectList(Model.Applications, "Value", "Text"), 
     "-- Select Application --", 
      new 
      { 
       id = "ApplicationsDropdownList", 
       data_url = Url.Action("ViewRolesTableForApplication", "Index") 
      } 
    ) 
</div> 

컨트롤러 :

public ActionResult ViewRolesTableForApplication(string applicationId) 
     { 
... 
return View("_RolesTableForApplicationPartial"); 
     } 
+0

아마 내가 뭔가를 오해하고 있습니다.하지만 왜 부분적으로보기 위해 Model_url을 포함하는 문자열을 만들 수 없습니까? – DMulligan

+0

@AFinkelstein 나는 당신이 오해하고 있다고 생각하지 않는다 ... 나는 그것이 내가 찾고있는 단순하고 매우 명백한 대답일지도 모른다라고 생각한다 – woggles

+0

하하, 내가 도울 수 있기 때문에 기쁘다. 나는 대답 할거야. – DMulligan

답변

1

당신은 당신이 당신의 부분보기 위해 사용하는 모델에 data_url를 포함하는 문자열 속성을 추가 할 수 있습니다.

Applications을 포함하는 모델 외에도 public string DataUrl { get; set; }도 포함됩니다.

관련 문제