繁体   English   中英

在MVC 4中为必填文本框设置一条消息

[英]Set a single message for Required Textbox In mvc 4

我正在使用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的文章

不为任何文本框和用户验证摘要提供ErrorMessage

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM