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 被包装在一个表单中(发布到 Controller X)。

问题是文件上传的部分视图还包括一个应该发布到处理程序的表单。但是,当我在选项卡 3 中启动文件上传时,它正试图发布到原始表单的控制器 X。

如何构建我的视图以将选项卡 1 和 2 上的表单中包含的字段发布到控制器 X,并将选项卡 3 中的表单发布到其正确的处理程序?

底线是我试图分别发布到不同选项卡面板中包含的 2 个不同表单

4

1 回答 1

0

我建议你用 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 回答