我有一个在主视图中渲染的局部视图.局部视图利用了System.ComponentModel.DataAnnotationsHtml.EnableClientValidation().

单击一个链接,包含局部视图的div显示在JQuery.Dialog()内.

然后单击save(保存)按钮,而不在已验证的输入字段中输入任何文本.这会导致客户端验证按预期启动,并在无效字段旁边显示"*required"消息.

单击"取消"按钮时,我想将客户端MVC验证重置为默认状态,并删除所有消息,以备用户再次打开对话框时使用.有推荐的方法吗?

推荐答案

这个答案适用于MVC3.请参阅下面的注释,以获取更新到MVC 4和MVC 5的帮助

如果您只想清除验证消息,这样它们就不会显示给用户,您可以使用javascript执行此操作,如下所示:

function resetValidation() {
        //Removes validation from input-fields
        $('.input-validation-error').addClass('input-validation-valid');
        $('.input-validation-error').removeClass('input-validation-error');
        //Removes validation message after input-fields
        $('.field-validation-error').addClass('field-validation-valid');
        $('.field-validation-error').removeClass('field-validation-error');
        //Removes validation summary 
        $('.validation-summary-errors').addClass('validation-summary-valid');
        $('.validation-summary-errors').removeClass('validation-summary-errors');

    }

如果您需要重置,使其仅在弹出窗口中工作,您可以这样做:

function resetValidation() {
        //Removes validation from input-fields
        $('#POPUPID .input-validation-error').addClass('input-validation-valid');
        $('#POPUPID .input-validation-error').removeClass('input-validation-error');
        //Removes validation message after input-fields
        $('#POPUPID .field-validation-error').addClass('field-validation-valid');
        $('#POPUPID .field-validation-error').removeClass('field-validation-error');
        //Removes validation summary 
        $('#POPUPID .validation-summary-errors').addClass('validation-summary-valid');
        $('#POPUPID .validation-summary-errors').removeClass('validation-summary-errors');

    }

我希望这就是你想要的效果.

Asp.net相关问答推荐

如何在 C#/MVC 4 中的 Html.TextBoxFor 中输入占位符文本

在正则表达式中允许 -(破折号)

使用进程外会话状态的 ASP.NET 应用程序中的 SQL Server 连接问题

为什么我在安装 IE8 后无法从 Visual Studio 2005 调试?

System.Web.Helpers.Crypto - 盐在哪里?

如何判断 IIS 是处于 32 位还是 64 位模式

ASP.NET MVC4 jquery/javascript 包的使用

如何使用 json 将复杂类型传递给 ASP.NET MVC 控制器

从 RowDataBound 事件的 gridview 从单元格中获取值

ASP.NET MVC 5 中的路由可选参数

IIS 10 上的 ASP.NET Core 404 错误

HttpResponse.End 或 HttpResponse.Close 与 HttpResponse.SuppressContent

web.config 中与 targetFramework 相关的配置错误

Web API 必填参数

如何通过 Google 图表 API 使用 X 轴中的日期?

Asp.Net Mvc - 如何在共享视图中有一个控制器

使用 Twitter Bootstrap 在 @html.actionlink 中显示 html

如何将 GridView.DataSource 导出到数据表或数据集?

ASP.NET 邮箱验证器正则表达式

Request.UserHostAddress 和 Request.ServerVariables["REMOTE_ADDR"].ToString() 有什么区别