如标题中所示.我使用
this方法允许每个表单提供多个提交按钮,并使用多个操作来处理它们.
然而 – 由于一些奇怪的原因 – 突然我的提交按钮没有提交表格!?这会发生什么原因?
使用IE,FF,Chrome测试 – 全部最新
查看代码:
- <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Setup.Mvc.viewmodels.SignUpviewmodel>" %>
- <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
- SignUp
- </asp:Content>
- <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
- <% using (Html.BeginForm("SignUp","SetUp",FormMethod.Post))
- {
- %>
- <%: Html.ValidationSummary()%>
- <button type="submit" value="Register" name="ActionRegister" >Register</button>
- <button type="submit" value="Cancel" name="ActionCancel" class="cancel" >Cancel</button>
- <fieldset>
- <legend>Account Information </legend>
- <dl>
- <dt>
- <%:Html.LabelFor(x=>x.UserName)%>
- </dt>
- <dd>
- <%: Html.TextBoxFor(x=>x.UserName) %>
- <%: Html.ValidationMessageFor(model => model.UserName) %>
- </dd>
- <% if (string.IsNullOrEmpty(Model.Provider))
- {
- %>
- <dt>
- <%:Html.LabelFor(x=>x.Password)%>
- </dt>
- <dd>
- <%: Html.PasswordFor(x => x.Password)%>
- <%: Html.ValidationMessageFor(model => model.Password) %>
- </dd>
- <%
- } %>
- <dt>
- <%:Html.LabelFor(x=>x.Email)%>
- </dt>
- <dd>
- <%: Html.TextBoxFor(x=>x.Email) %>
- <%: Html.ValidationMessageFor(model => model.Email) %>
- </dd>
- <dt>
- <%:Html.LabelFor(x=>x.Themes) %>
- </dt>
- <dd>
- <%: Html.DropDownList("ThemeId",Model.Themes.Select(x=> new SelectListItem{ Text = x.DisplayName,Value = x.DisplayName}),"Select a Theme") %>
- <%: Html.ValidationMessageFor(model => model.Themes) %>
- </dd>
- </dl>
- </fieldset>
- <fieldset>
- <legend>
- <h2>
- Additional Information</h2>
- </legend>
- <dl>
- <dt>
- <%:Html.LabelFor(x=>x.PublicSite)%>
- </dt>
- <dd>
- <%:Html.CheckBoxFor(x => x.PublicSite)%>
- <%: Html.ValidationMessageFor(model => model.PublicSite) %>
- </dd>
- <dt>
- <%:Html.LabelFor(x=>x.SiteUrl)%>
- </dt>
- <dd>
- http://cheesyurl.com/<%:Html.TextBoxFor(x => x.SiteUrl)%>
- <%: Html.ValidationMessageFor(model => model.SiteUrl) %>
- </dd>
- </dl>
- </fieldset>
- <%
- }%>
- </asp:Content>
行动:
- [HttpPost]
- [ActionName("SignUp")]
- [UnitOfWork]
- [AcceptParameter(Action = "ActionRegister")]
- public ActionResult SignUp_Register(SignUpviewmodel vm)
- {
- return View();
- }
我尝试将它从提交更改为按钮,它适用于所有2个帖子,然后停止了?!
我完全迷失了……我打赌我做的事情完全是愚蠢的……
从firebug发布输出:
- Parametersapplication/x-www-form-urlencoded
- Email wayne@isit.gd
- Password sdfsdfsdfsdf
- PublicSite false
- SiteUrl sdfsdfsdf
- ThemeId
- UserName Usernames-12131
- Source
- Content-Type: application/x-www-form-urlencoded Content-Length: 112 UserName=Usernames-Sux0r&Password=sdfsdfsdfsdf&Email=wayne%40isit.gd&ThemeId=&PublicSite=false&SiteUrl=sdfsdfsdf
解决方法
你在输入上设置了名字吗?
除非您指定“name”属性,否则不会发送表单字段.
- <input type="submit" name="Delete" value="Delete" />
- <input type="submit" name="Edit" value="Delete" />
编辑:我看到你使用按钮而不是提交.这可能是问题所在.
你需要使用这样的输入:
- <input type="submit" value="Register" name="ActionRegister"/>
- <input type="submit" value="Cancel" name="ActionCancel" class="cancel" />