私は現在、このチュートリアルに従ってカスケード ドロップダウン リストの新しいセットを作成しようとしています: http://blogs.msdn.com/b/rickandy/archive/2012/01/09/cascasding-dropdownlist-in-asp-net -mvc.aspx
問題は、それが機能せず、基本的に JavaScript を読み書きできないことです (現在、座って学習する時間がありません)。どういうわけか、ドロップダウン リストが機能せず、最初の階層情報のみが表示されます。
これは私がやったことです:
まずコントローラ:
インデックスメソッドは次のとおりです。
public ActionResult Index()
{
var list = repo.GetParentEstablishments();
ViewBag.Parent = (new SelectList(list.ToArray(),"EstablishmentId","Name"));
return View();
}
選択した父親の子供のリストを返すメソッドは次のとおりです。
[HttpPost]
public ActionResult Children(int parentId)
{
var parents = repo.GetChildrenEstablishments(parentId);
return Json(new SelectList(parents, "EstablishmentId", "Name"));
}
index メソッドのビューは次のとおりです。
@using (Html.BeginForm("Index", "Ticket", FormMethod.Post, new { id = "ParentChildrenFormID", data_childrenListAction = @Url.Action("ChildrenList") }))
{
<fieldset>
<legend> Parent/Children</legend>
@Html.DropDownList("Parents", ViewBag.Parent as SelectList, "Select a Parent", new {id="ParentsID"})
<div id="ChildrenDivId">
<label for="Children">Children </label>
<select id="ChildrenID" name="Children"></select>
</div>
<p>
<input type ="submit" value="Submit" id="SubmitID" />
</p>
</fieldset>
}
<script src ="@Url.Content("~/Scripts/parentChildren.js")"></script>
最後に、スクリプト ファイルを次に示します。
$(function () {
$('#ChildrenDivId').hide();
$('#SubmitID').hide();
$('#ParentsID').change(function () {
var URL = $('#ParentChildrenFormID').data('childrenListAction');
$.getJSON(URL + '/' + $('#ParentsID').val(), function (data) {
var items = '<option>Select a Children</option>';
$.each(data, function (i, child) {
items += "<option value='" + child.value+ "'>" + child.Name + "</option>";
// state.Value cannot contain ' character. We are OK because state.Value = cnt++;
});
$('#ChildrenID').html(items);
$('#StatesDivID').show();
});
});
$('#ChildrenID').change(function () {
$('#SubmitID').show();
});
});
私がjavascript関数から理解したことについては、ページが読み込まれると子のラベルとドロップダウンを持つdivが非表示になり、ユーザーが最初のリストから親を選択すると表示されますが、現在これは発生していません代わりに、ページが読み込まれるとすべてが表示されます。また、親を選択すると、2 番目のリストで何も起こらないので、javascrip ファイルがユーザーのブラウザで実行されていないと推測できます。実行されないのはなぜですか? 私は何を間違っていますか?
事前に感謝します。どんな助けでも大歓迎です。