C# ASP.Net MVC 正则表达式属性验证:否定后看断言:呈现“<”而不是“<”
本文关键字:呈现 断言 MVC Net ASP 正则表达式 属性 验证 | 更新日期: 2023-09-27 18:32:49
以下属性:
[RegularExpression(@"(?<!Unknown).*", ErrorMessage = "value cannot be Unknown")]
呈现为以下 HTML:
<select name="ChannelName" id="ChannelName" data-val-regex-pattern="(?<!Unknown).*" data-val-regex="value cannot be Unknown" data-val="true">
这显然不是我想要的。有没有办法编写正则表达式属性的模式属性,以便正确呈现?一旦我成功地解决了 @Html.Raw(( 的非常相似的问题,但那是在客户端。
为什么它不是你想要的。 <是一个转义序列,当有人(验证框架(读取属性值时,他们将看到<
我认为你的正则表达式是错误的。 如果文本中有任何位置前面没有"未知",(?<!Unknown).*
就会成功。我认为您正在寻找以下表达式:
^(?!Unknown)
^ 表示字符串的开头。
然后(?!未知(以防止任何以"未知"开头的字符串。