MVC验证06-自定义错误信息

原文:MVC验证06-自定义错误信息

本文体验自定义错误信息。

  系统默认的错误信息

在"MVC验证02-自定义验证规则、邮件验证"中,我们自定义了一个验证Email的类。如果输入邮件格式错误,出现系统默认的报错信息。

效果:
             

 

  通过ErrorMessage来修改错误信息

[Email(ErrorMessage = "Email格式错误")]
[Display(Name = "邮件")]
public string Email { get; set; }

效果:

  在自定义验证特性中重写FormatErrorMessage方法

using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
using System.Web.Mvc;
 
namespace MvcValidation.Extension
{
    public sealed class EmailAttribute : ValidationAttribute, IClientValidatable
    {
        public const string reg = @"^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]+$";
 
        public EmailAttribute()
        {  
        }
 
        //重写基类方法
        public override bool IsValid(object value)
        {
            if (value == null)
                return true;
 
            if (value is string)
            {
                Regex regEx = new Regex(reg);
                return regEx.IsMatch(value.ToString());
            }
            return false;
        }
 
        public System.Collections.Generic.IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            ModelClientValidationRule rule = new ModelClientValidationRule
            {
                ValidationType = "email",
                ErrorMessage = FormatErrorMessage(metadata.GetDisplayName())
            };
            yield return rule;
        }
 
        /// <summary>
        /// 格式化错误信息
        /// </summary>
        /// <param name="name">属性名</param>
        /// <returns></returns>
        public override string FormatErrorMessage(string name)
        {
            return  this.ErrorMessage ?? string.Format("{0}属性没有输入正确的Email", name);
        }
    }
}
 

效果:

时间: 2024-08-01 02:29:05

MVC验证06-自定义错误信息的相关文章

javaweb-如何使SpringMVC返回400错误的时候能够带上自定义错误信息?

问题描述 如何使SpringMVC返回400错误的时候能够带上自定义错误信息? 正常情况的返回:正常情况下响应里是我的自定义json字符串 我的情况:我的响应中是一个表示400错误的HTML页面 我的代码:继承了SpringMVC的DefaultHandlerExceptionResolver进行的全局错误处理. 在这个地方返回的json数据,返回后浏览器没有收到我的自定义夹送字符串,且ContentType也没有起作用. 解决方案 好了,我自己解决了...答案是... response.sen

ASP.NET中MVC使用AJAX调用JsonResult方法并返回自定义错误信息_实用技巧

一.如何用AJAX调用JsonResult方法 比如FuckController中添加有个返回JsonResult类型的方法FuckJson(): 复制代码 代码如下: <span class="kwd">public<span class="pln"> <span class="typ">JsonResult<span class="pln"> <span class=&

Jquery ajax执行顺序 返回自定义错误信息(实例讲解)_jquery

1.多个Ajax 在一个function中的执行顺序 由于Jquery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false就可以了. 复制代码 代码如下: function TestAjax(){            var UserName = $("#txtUserName").val();            $.ajax(            {                url: &quo

用err.raise自定义错误信息

错误 我想大多数的人在编写ASP程序的时候,都碰到过类似的错误信息:   Error Number -> -2147467259   Error Source -> Microsoft OLE DB Provider for ODBC Drivers   Error Desc -> [Microsoft][ODBC Driver Manager] Data source name not found and no default driver 可时间上,这个错误信息对我们并不怎么有用,或

用ASP.NET将网页错误信息写入系统日志

asp.net|错误|网页 设计网站的时候,不可能我们的网站不出现一点错误,常见的"页面不存在""页面运行出错"等错误信息一般网站多少总是存在的,关键是,这些错误出现以后,管理员怎样方便及时的发现它们.尽量减少用户对网站的不好印象.不管是IIS 4还是IIS 5,我们都可以设置网站的"自定义错误信息",通过这样的设置,一些系统默认的比较不友好的错误信息就可以更换为网站管理员自定义的页面,这对于网站的实用和友好性都大有帮助.但是,我们在使用过程中却

让IIS 5.0的错误信息提示更详细的方法(转帖jjx的文章)

iis|错误 如果你使用iis 5.0,你会发现iis 5.0的错误信息比iis 4.0来的含糊的多了,这是由于iis 5.0开始使用asperror处理错误的缘故.就拿数据库登录失败来说吧iis 4.0显示的是Microsoft OLE DB Provider for SQL Server 错误 '80040e4d' Login failed for user 'xxx'. xxxxx.asp,行xx在iis 5.0中就显示HTTP 500.100 - 内部服务器错误 - ASP 错误Inte

让IIS 5.0的错误信息提示更详细的方法

如果你使用iis 5.0,你会发现iis 5.0的错误信息比iis 4.0来的含糊的多了,这是由于iis 5.0开始使用asperror处理错误的缘故.就拿数据库登录失败来说吧iis 4.0显示的是Microsoft OLE DB Provider for SQL Server 错误 '80040e4d' Login failed for user 'xxx'. xxxxx.asp,行xx在iis 5.0中就显示HTTP 500.100 - 内部服务器错误 - ASP 错误Internet 信息

ASP.NET MVC自定义错误页面真的简单吗?_实用技巧

如果你在设置asp.net mvc自定义错误页面时遇到问题,这并不止你一个人.惊讶之余你的做法是正确的,没有起到作用的原因是其一部分错误是由asp.net管道处理的,另一部分是由iis直接处理. 通常情况 (我期望是这种情况,在一些其他框架/服务器上) 我们只需要在一个地方配置自定义错误页就可以了,无论怎么哪儿引发的错误.就像这样︰ <customErrors mode="On"> <error code="404" path="404.

ASP.NET MVC验证 - 自定义验证规则、验证2个属性值不等【待验证】

提示:保存后才提示错误信息   自定义验证特性,继承ValidationAttribute并实现IClientValidatable 这次重写了基类的IsValid()方法的另外一个重载,因为该重载包含了验证上下文ValidationContext,从中可以获取属性及属性值. using System.ComponentModel.DataAnnotations; using System.Globalization; using System.Web.Mvc; namespace MvcVal