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 に答える