在两个不同的控制器asp.net mvc中将表单提交给两个不同的操作

时间:2016-08-05 06:12:31

标签: c# asp.net asp.net-mvc forms

我已经搜索了很多关于这个问题的信息,但是对于我的情况我找不到任何帮助。所以,这是问题 我有一个包含单个下拉菜单的表单,名为部分,用户可以选择部分,然后用户有两个选项。
1 - 添加文件到此部分转到文件上传表单
2 - 通过添加部分表格添加更多子部分
This is image of my form

enter image description here

 @using (Html.BeginForm("SectionForm","Sections"))
    {
    <div class="form-group">
        @Html.DisplayFor(s => s.SectionName)
        @Html.DropDownListFor(s => s.SelectedSection, new SelectList(Model.Sections,"SectionId","SectionName"),"Select a Section",new {@class = "form-control",autofocus="autofocus"} )
    </div>
    <p>
        If you don't see your desired section here, Click <strong>Add Section</strong>.
    </p>
    <button type="submit" class="btn btn-primary">Add Further Subsection</button>

      <br />
     <a href="@Url.Action("FileForm","LawFiles",new { sectionId =  Model.SelectedSection })" class="btn btn-primary">Add File</a>
}
<br>

SectionForm FileForm 是我的行为,栏目 LawFiles 是控制器。
锚标记最后一直无法工作,直到我不提交表单

1 个答案:

答案 0 :(得分:1)

您可以使用javascript修改表单的操作。您将在提交按钮上添加单击事件并覆盖默认提交操作。

 <html>
 <body>
    <form id="myform">
           <input type="submit" id="submit1"/>
           <input type="submit" id="submit2"/>
    </form>
 </body>
 <script>
    $("#submit1").click(function() {
    document.myform.action = “http://localhost/controller/action1”;
    });
    $("#submit2").click(function() {
      document.myform.action = “http://localhost/controller/action2”; 
    });
 </script>
</html>