。
コントローラー:
public ActionResult Index()
{
ViewBag.dd1value = default_value;
ViewBag.dd1 = DropDownlist1();
ViewBag.dd2 = DropDownlist2(dd1value);
Return View();
}
ビュー:最初のDropDownListで
のonchange JavaScriptを追加します。
<select onchange="javascript:this.form.submit();">
@foreach (var item in ViewBag.dd1) {
if (ViewBag.dd1value = item.dd1value)
{
<option selected value="@item.dd1value">@item.dd1text</option>
}
else
{
<option value="@item.dd1value">@item.dd1text</option>
}
}
次に、送信ボタンに名前を付けます。
<input type="submit" name="Genereate" value="Generate" />
コントローラでは、2つのActionResultを作成してデータを受信します。ドロップダウンリストの場合 :
[HttpPost]
public ActionResult Index(int dd1value)
{
ViewBag.dd1value = dd1value;
ViewBag.dd1 = DropDownlist1();
ViewBag.dd2 = DropDownlist2(dd1value);
Return View();
}
提出するためのボタン:
[HttpPost]
public ActionResult Index(int dd1value, int dd2value, FormCollection collection)
{
ViewBag.dd1value = dd1value;
ViewBag.dd2value = dd2value;
ViewBag.dd1 = DropDownlist1();
ViewBag.dd2 = DropDownlist2(dd1value);
ViewBag.result = Result(dd1value, dd2value);
Return View();
}
あなたはボタンを必要としない場合:
[HttpPost]
public ActionResult Index(int dd1value, int dd2value)
{
ViewBag.dd1value = dd1value;
ViewBag.dd2value = dd2value;
ViewBag.dd1 = DropDownlist1();
ViewBag.dd2 = DropDownlist2(dd1value);
ViewBag.result = Result(dd1value, dd2value);
Return View();
}
注意してください、あなたがViewBag/ViewDataをを使用している場合、すべてのヘルプあなたはコンパイラから取得し、実行時のエラー/バグは、プロパティが「通常の」オブジェクト上にあり、コンパイラによって誤植がキャッチされた場合よりも発生する可能性が高くなります。
部分ビューを使用する必要がありますか? –