在mvc 4中为Required Textbox设置一条消息



我使用的是MVC4 .我想将许多文本框设置为Required像这样:

         public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        [Required]
        public string LastName { get; set; }
        [Required(ErrorMessage = "test")]
        [StringLength(10,ErrorMessage = "کد ملی باید ده رقمی باشد",MinimumLength = 10)]

所以我必须为每个文本框写一个错误消息。所以这很耗时。如何为MVC4中所有所需的文本框设置单个消息?

创建一个自定义必需属性由Overriding现有的必需属性如下:

public class RequiredAttribute : System.ComponentModel.DataAnnotations.RequiredAttribute
{
    private string _propertyName;
    public RequiredAttribute([CallerMemberName] string propertyName = null)
    {
        _propertyName = propertyName;
    }
    public string PropertyName
    {
        get { return _propertyName; }
    }
    private string GetErrorMessage()
    {
      //Provide your Error Message Here..           
    }
    public override string FormatErrorMessage(string name)
    {
        //note that the display name for the field is passed to the 'name' argument
        return string.Format(GetErrorMessage(), name);
    }
}

我只会在可以从资源文件中提取错误消息的地方使用签名。这样,您就可以在一个地方设置错误消息,并且只需让所需的属性看起来像这样:

[Required(ErrorMessageResourceType = typeof(MyResources), ErrorMessageResourceName = "ErrorMessageForRequired")]

这是Phil Haack的一篇文章

没有为任何textbox和uservalidationsummary提供ErrorMessage

最新更新