一页MVC 5中的多个表单

时间:2014-11-03 09:07:25

标签: razor asp.net-mvc-5

我有一个MVC 5应用程序,在页脚中我有一个"订阅时事通讯"形式,问题是,当我尝试汇总另一个表格(注册用户,...)时,页脚中的表单也会提交,我该如何解决问题,

表格id =" newsletter-signup" action =" @ Url.Action(" _SubscribeNewsletter"," Home")"方法="后">

[HttpPost]         public ActionResult _SubscribeNewsletter(SubscribeNewsletterViewModel model)         {

@using(Html.BeginForm(" Create"," Property",null,FormMethod.Post,new {@encType =" multipart / form-data&#34 ;,@ id =" my-awesome-dropzone",@ class =" add-estate",role =" form"}))             {

由于

2 个答案:

答案 0 :(得分:1)

如果您不需要一次显示少量表单,可以尝试隐藏包含表单的div,这样就不会存在并且您不应该遇到问题, 还要尝试在表单中添加name属性,并检查提交按钮是否在其所属的表单内。

这里是我在一个html页面中的多个表单的一些示例,我使用javascript来处理它并处理show-hide机制但你应该只能用css来管理它

<div class="ElementInformations" id="server">
            <h2>Server Informations</h2>
            <br />
            <form id="svform" action="">
                <table>
                    ...
                </table>
                <br />
                <input type="hidden" name="PrevSvid" id="PrevSvid" value="PrevSvid" />
                <input class="content-button" type="button" onclick="putServerForm();" value="Save Server Changes" />
                <br />
                <br />
                <input class="content-button" type="button" onclick="addDatabasePanel();" value="Add Database Panel" />
                <br />
                <br />
                <input class="content-button" type="button" onclick="deleteServer();" value="Delete Server" />
            </form>
            <form id="newdatabaseform" action="">
                <br />
                <h2>Add Database</h2>
                <br />
                <table>
                    ...
                </table>
                <br />
                <input type="hidden" id="NewServerId" name="ServerId" value="NewServerId" />
                <input class="content-button" type="button" onclick="addDatabase();" value="Add Database" />
            </form>
        </div>
        <div class="ElementInformations" id="database">
            <h2>Database Informations</h2>
            <br />
            <form id="dbform" action="">
                <table>
                    ...
                </table>
                <br />
                <h2>Database Translation</h2>
                <br />
                <table>
                    ...
                </table>
                <br />
                <input type="hidden" name="prevdbid" id="prevdbid" value="prevdbid" />
                <input class="content-button" type="button" onclick="putDatabaseForm();" value="Save database modifications" />
                <br />
                <br />
                <input class="content-button" type="button" onclick="deleteDatabase();" value="Delete Database" />
            </form>
        </div>
        <div id="NewServerPanel">
            <h2>Add Server</h2>
            <form id="newsvform" action="">
                <table>
                  ...
             </table>
                <br />
                <input class="content-button" type="button" onclick="addServer();" value="Add Server" />
                <br />
            </form>
        </div>

答案 1 :(得分:1)

您可以通过定义将哪个表单提交给哪个控制器操作方法来使用这种方法。

@using(Html.BeginForm("Login", "Controller", FormMethod.Post, new { id = "loginForm"}))
 {
       @Html.EditorFor(m => Model.Login)
 }