0

私の ASP.NET MVC アプリケーションには、多数のフィールドを持つ 3 つのタブを持つ Razor ビューが含まれています。

  • タブ1-2にはたくさんのフィールドがあります
  • タブ 3 には、部分ビューからレンダリングする必要があるファイル アップロード セクションが必要です。

構造は次のとおりです。

    <body>
        <div class="container well" >
            @using (Html.BeginForm(new { Action = "action X",id="publishingForm" })) {
                @Html.AntiForgeryToken()
    @Html.ValidationSummary()

                <div class="form-horizontal">    


                    <div class="tabbable"> 
                        <ul class="nav nav-tabs">
                            <li class="active"><a href="#requiredtab" data-toggle="tab"><span><strong>Step 1:</strong></span> Enter required fields</a></li>
                            <li><a href="#optionaltab" data-toggle="tab"><strong>Step 2:</strong> Enter optional fields</a></li>
                            <li><a href="#uplaodtab" data-toggle="tab"><strong>Step 3:</strong> Upload your video</a></li>
                        </ul>

                        <div class="tab-content">

                            <div class="tab-pane active" id="requiredtab">

                            </div>

                            <div class="tab-pane" id="optionaltab">         


                            </div>

                            <div class="tab-pane" id="uplaodtab">
partial view here

                            </div>

                        </div>

                    </div>

                </div>
                }
        </div>
        </body>
</html>

ご覧のとおり、タブの Div はフォームにラップされています (コントローラー X への投稿)。

問題は、ファイル アップロードの部分ビューにも、ハンドラーに投稿する必要があるフォームが含まれていることです。しかし、タブ 3 でファイルのアップロードを開始すると、元のフォームのコントローラー X に投稿しようとしています。

タブ 1 と 2 のフォームに含まれるフィールドがコントローラー X に投稿され、タブ 3 のフォームが正しいハンドラーに投稿されるようにビューを構成するにはどうすればよいですか?

肝心なのは、異なるタブパネルに含まれる2つの異なるフォームに別々に投稿しようとしているということです

4

1 に答える 1

0

2 つのフォームを Ajax Forms でラップすることをお勧めします。両方を非同期で送信できます。

   @using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "updateDiv" }))
   {
      <input type="submit" id="submitForm1" value="OK" />
   }

   <div id="updateDiv"></div>


    @using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "updateDiv2" }))
   {
     <input type="submit" id="submitForm2" value="OK" />
    }

  <div id="updateDiv2"></div>

 and call the  .click() for each submit button whenever your code needs to.
于 2013-09-09T01:38:24.747 に答える