1

現在、1 つの .xml から 2 つの個別のターゲットを更新する必要がある Web サイトを構築していAjax.BeginFormます。追加のコンテナを使用して 2 つの個別のターゲットをコンテナ化することで、機能するようになりました。次のように:

  1. 原形

    @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!" />
    }
    
  2. コードファイル

    public ActionResult LoadData(int sel1)
    {
      // loading data from database
      return PartialView(mod1);
    }
    
  3. 部分図

    @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 です (選択オプションにそのような値はありません)。誰かがこの理由と、それを解決する方法についての洞察を提供してもらえますか. 前もって感謝します。

4

1 に答える 1