2012-04-12 36 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

也许我误解了一些东西,但为什么你不能只是让一个包含你的data_url的字符串作为你的部分视图模型的另一部分? – DMulligan 2012-04-12 18:34:13

+0

@AFinkelstein我不认为你是误解......我认为这可能是我寻找的简单和非常明显的答案 – woggles 2012-04-12 21:33:57

+0

哈哈,很高兴我能帮上忙。我会做出答案。 – DMulligan 2012-04-12 21:54:33

回答

1

您可以添加含有data_url到您用于局部视图模型中的字符串属性。

所以除了包含Applications的型号外,它也会有public string DataUrl { get; set; }