カスケード ドロップダウン リストのセットを作成しようとしています。メイン ビューは 2 つの部分ビューのセットで構成されています。
@model WebUI.Controllers.IndexViewModel
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<table cellpadding="0" cellspacing="4" border="0">
<tr>
<td>Category </td>
<td> :</td>
<td>@Html.Partial("ParentsUserControl", Model)</td>
</tr>
<tr>
<td>Sub - Category </td>
<td> :</td>
<td><div id="Children">@Html.Partial("ParentChildrenUserControl", Model)</div></td>
</tr>
</table>
各部分ビューには、ドロップダウン付きの AJAX フォームがあります。
@model WebUI.Controllers.IndexViewModel
@using (Ajax.BeginForm("SelectParent", "Ticket", new AjaxOptions { UpdateTargetId = "Children" }))
{
@Html.DropDownListFor(
m => m.SelectedParenId,
new SelectList(Model.AvailableParents, "EstablishmentId", "Name"),
string.Empty
)
}
<script type="text/javascript">
$('#SelectedParenId').change(function () {
$(this).parents('form').submit();
});
</script>
問題は、最初のリストの項目をクリックするとすぐに、新しいページが 2 番目の部分ビューでレンダリングされることです。新しいページを生成せずに、メイン ビュー内の部分ビューをレンダリングするにはどうすればよいですか? UpdateTargetId は何を参照していますか?
また、ユーザーが選択した値をコントローラーに戻すにはどうすればよいですか? 私が作成しているのはすべてテーブルですが、そのテーブルをフォーム内に配置する必要がありますか?
前もって感謝します!