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");
        }
4

1 回答 1

1

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

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

于 2012-04-12T21:56:31.163 回答