![](/img/trans.png)
[英]How to remove the reference of @using @Model shown on View in MVC5 ASP.Net
[英]How to do string “not like” validation in view model in ASP.NET MVC5?
所以我喜欢做的是:
[NotLike(Value = "Forbidden value")]
public string Title { get; set; }
可能吗? 我已经阅读了 Microsoft 的文档,但找不到类似的内容。
您应该使用ValidationAttribute
并从它继承如下:
public class NotLikeAttribute : ValidationAttribute
{
private string _NotLikeStr = "";
public NotLikeAttribute(string notLikeStr)
{
this._NotLikeStr = notLikeStr;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
if (!((string)value).Contains(_NotLikeStr))
{
var memberName = validationContext.MemberName;
var errorMsg = "Your Message";
return new ValidationResult(errorMsg);
}
}
return null;
}
}
并按如下方式装饰您的财产:
[NotLike("Forbidden value")]
public string Title { get; set; }
当然不是使用下面的行
if (!((string)value).Contains(_NotLikeStr))
您可以split string to multiple words
或使用Regular expression
或任何满足您要求的内容。
对于你的问题,我有两个解决方案:
1.使用[RegularExpression()]
您可以使用正则表达式并创建自己的验证模式
有关更多信息,请查看此链接: 数据注释正则表达式
2. 创建新的自定义数据注解
您可以创建新的自定义数据注释(就像您在问题中所做的那样)
有关更多信息,请查看此链接: 如何创建自定义数据注释验证器
您可以为此使用正则表达式
[RegularExpression(@"^((?!Forbidden value).)*$", ErrorMessage = "Characters are not allowed.")]
public string Title { get; set; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.