Asp.net mvc ASP.NET MVC,取消触发客户端验证,为什么?

Asp.net mvc ASP.NET MVC,取消触发客户端验证,为什么?,asp.net-mvc,validation,Asp.net Mvc,Validation,我正在使用MVC3、C#、Razor、.NET4.5 我有一个必填字段值 @Html.ValidationMessageFor(model => model.Name) 呈现为: <input data-val="true" data-val-required="* Required" id="Name" name="Name" style="width:440px" type="text" value="" /> 不幸的是,它是由“取消”按钮触发的,尽管按钮定义为:

我正在使用MVC3、C#、Razor、.NET4.5

我有一个必填字段值

@Html.ValidationMessageFor(model => model.Name)
呈现为:

<input data-val="true" data-val-required="* Required" id="Name" name="Name" style="width:440px" type="text" value="" />

不幸的是,它是由“取消”按钮触发的,尽管按钮定义为:

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) 
{
    @Html.ValidationSummary(true)

    @Html.TextBoxFor(model => model.Name, new {@style="width:440px" })
    @Html.ValidationMessageFor(model => model.Name)

    <p class="form-buttons">
        <button type="submit" name="btn" value="Save">Save</button>
        <button type="submit" name="btn" value="Cancel">Cancel</button>
    </p>

}

@使用(Html.BeginForm())
{
@Html.ValidationSummary(true)
@Html.TextBoxFor(model=>model.Name,新的{@style=“width:440px”})
@Html.ValidationMessageFor(model=>model.Name)

拯救 取消

}
此外,它似乎是在事后操作之前触发的,因此必须通过Javascript来触发

我不介意JS触发验证,但我需要确保Cancel按钮只关闭页面并返回到另一个页面,如果btn!=保存


那么,我如何停止此取消验证呢?

在“取消”按钮中添加一类“取消”,以防止触发验证。如果只是要忽略“提交”按钮,则让“提交”按钮向服务器发送数据是没有意义的。最佳做法是使用超链接(
@Html.ActionLink()
)作为取消按钮,而不是表单提交按钮。谢谢。两个优点