現在、1 つの .xml から 2 つの個別のターゲットを更新する必要がある Web サイトを構築していAjax.BeginForm
ます。追加のコンテナを使用して 2 つの個別のターゲットをコンテナ化することで、機能するようになりました。次のように:
原形
@model Mod1 @using (Ajax.BeginForm("LoadData", new AjaxOptions{UpdateTargetID = "Div1"})) { <select id="sel1" name="sel1" onchange="$(this.form).submit"> // ... </select> } @using (Ajax.BeginForm("ProcessData", new AjaxOptions{UpdateTargetID = "Div2"})) { <div id="Div1"></div> // ... <input type="submit" value="GO!" /> }
コードファイル
public ActionResult LoadData(int sel1) { // loading data from database return PartialView(mod1); }
部分図
@model Mod2 <select id="sel2" name="sel2"> @foreach (var item in Model.SelectItems) { <option value="@item.Value">@item.Text</option> } </select> @foreach (var item in Model.CheckBoxItems) { <label>@item.Text<input type="checkbox" id="chk1" name="chk1" value="@item.Value"></label> }
処理方法については、次のことを試しました。
public ProcessData(Mod1 mod1, string[] chk1, int sel2)
ただし、フォームの送信時に chk1 または sel2 の値を取得できません。デバッグ モードで chk1 と sel2 を調べると、chk1 は null ですが、sel2 は 0 です (選択オプションにそのような値はありません)。誰かがこの理由と、それを解決する方法についての洞察を提供してもらえますか. 前もって感謝します。