ASP.NET MVC删除模型验证

时间:2014-04-25 07:57:10

标签: asp.net-mvc validation form-submit

假设我有一个带有两个提交按钮的表单:保存和删除。

如何删除/禁用删除按钮上的模型验证?

3 个答案:

答案 0 :(得分:3)

假设您正在使用标准的不显眼/ jQuery验证;通过放置一个"取消"来禁用客户端验证。在按钮上:

<button type="submit" class="cancel">Delete</button>

如果单击此按钮,这将阻止客户端验证完全触发。

对于服务器端,请不要检查模型是否有效。

答案 1 :(得分:0)

例如,如果模型上有属性Name,并且您不想在删除时验证它。 首先需要区分httppost是来自保存还是删除按钮。

添加到您的模型字段IsDelete

我建议您在视图中添加以下内容:

    @Html.HiddenFor(x => x.IsDelete)

将onclick事件添加到删除按钮:

<button type="submit" onclick="javacript: $('#IsDelete').val('true');"> Delete </button>

在控制器中执行以下操作:

public ActionResult MyAction(MyModel model)
{
   if(model.IsDelete)
      ModelState.Remove("Name");

   var valid = ModelState.IsValid();
}

答案 2 :(得分:-1)

您可以在视图中使用两个单独的表单进行编辑和删除。

例如:

@using(Html.BeginForm("Edit", "Employee"))
{
    //Edit inputs - ex textboxes for employee details such as name, age...
    <input type="submit" value="Edit" />
} 

@using(Html.BeginForm("Delete", "Employee"))
{
    //Delete inputs - ex: hidden input for employee id
    <input type="submit" value="Delete" />
}