加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何在ASP.NET MVC 2中执行“causevalidation =

发布时间:2020-12-16 06:57:41 所属栏目:asp.Net 来源:网络整理
导读:我在一个表单上有两个按钮.一个用于提交表单而另一个用于搜索.我不希望搜索按钮触发任何服务器端或客户端验证. 我怎样才能做到这一点? 谢谢. 编辑 我正在服务器上使用Data Annotations进行验证,例如: [Required(ErrorMessage = "Institution is required")
我在一个表单上有两个按钮.一个用于提交表单而另一个用于搜索.我不希望搜索按钮触发任何服务器端或客户端验证.

我怎样才能做到这一点?

谢谢.

编辑

我正在服务器上使用Data Annotations进行验证,例如:

[Required(ErrorMessage = "Institution is required")]
    [Range(1,2,ErrorMessage="Please select an institution")]
    [DisplayName("Institution")]
    public int InstitutionId { get; set; }

在客户端我正在使用这个:

<% Html.EnableClientValidation(); %>

解决方法

要禁用搜索按钮的客户端验证,请在页面中添加如下脚本:

<script type="text/javascript">
  document.getElementById("searchButton").disableValidation = true;
</script>

如果触发按钮有一个名为“disableValidation”的字段,其值为true,则不会运行客户端验证.

在服务器端,你的问题有点难以回答,因为这完全取决于你是否以及如何进行模型绑定以及当有人点击该搜索按钮时你的控制器方法会做什么.一个选项可能只是清除ModelState中的所有错误……这是一个方法:

private static void ClearErrors(ModelStateDictionary modelState)
{
    foreach (var key in modelState.Keys)
    {
        modelState[key].Errors.Clear();
    }
}

如果您从控制器发布一些示例代码,我可以尝试给出更好的答案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读