【问题标题】:How do I allow a submit button such as "Delete" to bypass the client-side validation in ASP.NET MVC 3如何允许诸如“删除”之类的提交按钮绕过 ASP.NET MVC 3 中的客户端验证
【发布时间】:2010-11-18 19:31:49
【问题描述】:

我在使用带有客户端验证的 MVC 3 的页面上有两个提交按钮。有一个文本框映射到一个对象,该对象具有使其成为必需的数据注释。只要我尝试单击“保存”按钮,它就可以正常工作。它确保文本框被填充。

但是,当我尝试单击“删除”按钮返回控制器并绕过客户端验证时,它当然仅在填充文本框时才有效。我认为在有取消按钮的情况下需要也是。

我找不到任何关于如何让提交按钮仍然回发到控制器但还允许提交按钮之一不验证页面的示例。

这是标记:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm())
   {

%>
<fieldset>
    <br />
    <div class="grid_10">
        <div class="grid_2 fieldlabel alpha">
            <%= Html.LabelFor(model => model.Name)  %>
        </div>
        <div class="grid_8 omega" style="white-space: nowrap;">
            <%= Html.TextBoxFor(model => model.Name, new { @class = "focus textbox_300" }).MaxLength(100)%>
            <%= Html.ValidationMessageFor(model => model.Name) %>
        </div>
        <div class="clear">
        </div>
        <br />
    </div>
    <div class="clear">
    </div>
    <div class="grid_4 prefix_2">
        <input type="submit" value="Save" id="btnSave" name="btnSubmit" style="width:60px;" />
        &nbsp;&nbsp;
        <input type="submit" value="Delete" id="btnDelete" name="btnSubmit"  style="width:60px;" />
    </div>
    <div class="clear">
    </div>
    <br />
</fieldset>
<% } %>

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    他们发布到同一个 ActionMethod 吗?

    你可以把它放到它自己的&lt;form&gt;

    【讨论】:

    • 是的,但如果有您知道的解决方法,则不必这样做。只是问题是客户端验证会阻止任何东西返回到控制器。
    • 我没有阅读第二行。对不起。我会尝试单独的
      标签。
    • 那行得通。将 Delete 按钮放在它自己的
      中当然会绕过客户端对 Save 按钮所在的当前表单中的控件的验证。如此简单但显然逃脱了我。谢谢。
    猜你喜欢
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 2011-09-17
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    相关资源
    最近更新 更多