使部分视图可重用

时间:2012-04-12 08:30:19

标签: asp.net asp.net-mvc-3 razor partial-views

假设我有部分视图呈现应用程序的下拉列表。在下拉列表中选择项目时,它会呈现另一个局部视图。

此下拉列表存在于应用程序的一些位置,但在每个页面上,在选择应用程序时需要呈现不同的局部视图。是否有一种简单的方法可以使下拉列表重复使用?即我需要根据部分视图呈现的页面设置不同的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");
        }

1 个答案:

答案 0 :(得分:1)

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

因此,除了包含Applications的模型之外,它还将包含public string DataUrl { get; set; }