自定义服务器端验证c#

时间:2018-02-12 20:51:49

标签: c# asp.net-mvc

我是新手,并为服务器端的字符串长度验证创建了一个自定义属性。例如我有这个

 [StringLength(5, MinimumLength = 2, ErrorMessageResourceName = "StringLength", ErrormessageResourceType = typeof(Resource))]
 public string LastName { get; set; }

我想创建一个自定义属性,所以每次我需要验证字符串长度时我都可以减少重复项

[MyStringLength(5)]
public string LastName { get; set; }

这是我的观点

@Html.TextBoxFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)

自定义属性“MyStringLength”的代码

 public class MyStringLengthAttribute : StringLengthAttribute
{

    public MyStringLengthAttribute(int maximumLength) : base(maximumLength)
    {         
        base.ErrorMessageResourceName = "StringLength";
        base.ErrorMessageResourceType = typeof(Resource);
    }
}

这帮助了我Modify default ErrorMessage for StringLength validation ,但是在我发布表单之后,它只刷新了包含值的页面,并且没有显示任何验证消息

1 个答案:

答案 0 :(得分:1)

我需要一个适配器进行客户端验证,并在我的global.asax.cs中注册自定义属性。请参阅Client-side validation for custom StringLength validation attribute