私の見解は
<div id="Countryy">
<div class="editor-label">
@Html.LabelFor(model => model.Country, "Country")
</div>
<div class="editor-field">
@Html.DropDownList("Country", String.Empty)
@Html.ValidationMessageFor(model => model.Country)
</div>
</div>
<div id="Statess">
<div class="editor-label">
@Html.LabelFor(model => model.State, "State")
</div>
<div class="editor-field">
@Html.DropDownList("State", String.Empty)
@Html.ValidationMessageFor(model => model.State)
</div>
</div>
<div id="Cityy">
<div class="editor-label">
@Html.LabelFor(model => model.City, "City")
</div>
<div class="editor-field">
@Html.DropDownList("City", String.Empty)
@Html.ValidationMessageFor(model => model.City)
</div>
</div
マイコントローラー
public ActionResult Edit(int id)
{
Student student = db.Students.Single(s => s.ID == id);
ViewBag.Country = new SelectList(db.Couns, "ID", "CountryName", student.Country);
ViewBag.State = new SelectList(db.States.Where(d => d.CountryID.Equals(student.Country)), "StateID", "StateName", student.State);
ViewBag.City = new SelectList(db.Cities.Where(x => x.StateID.Equals(student.State)), "CityID", "CityName", student.City);
return View(student);
}
引用符
私の質問は、国、州、都市のドロップダウン リストをカスケードする方法です。このビューは、データを編集するときに生成されます。データベースから保存されたデータが取得され、コントロールにバインドされますが、ユーザーが州よりも国のドロップダウンの値を変更すると、ドロップダウンもそれに従って入力する必要があります。必要なpkとfkを含む国、州、都市の3つの異なるテーブルがdbにあります