所以我有这个模型:
public class MyModel
{
[RegularExpression(@"[^/\\|""<>:?'\*\[\]=%$+,;~#&{}]*", ErrorMessage = @"Illegal characters: / \ | "" ' < > [ ] { } : ; , ~ ? = + * % $ #")]
public string Reference{ get; set; }
}
由于业务需求,无效字符列表需要扩展。问题是数据库中已经存在Reference
个包含额外非法字符的内容。现在,当呈现视图时,它会在@Html.TextBoxFor()
- 行中断(由RegexAttribute触发的FormatException)。
using (Html.FormGroupFor(x => x.DocReference))
{
@Html.LabelFor(x => x.Reference)
@Html.TextBoxFor(x => x.Reference)
}
奇怪的是,我总是得到一个例外。即使数据没有任何非法字符。
修改
当错误弹出时。我关闭它并将执行设置为@Html.TextBoxFor
之前的一行。当编译器再次尝试TextBox时,没有例外。
答案 0 :(得分:0)
显然错误不是因为错误的正则表达或巫术。在文字字符串中编写花括号时,必须将它们转义。下面是固定正则表达式+固定错误消息。
[RegularExpression(@"[^/\\""\|<>:\?'\*\[\]\=%\$\+,;~#&\{\}]*",
ErrorMessage = @"Illegal characters: / \ | "" ' < > [ ] {{ }} : ; , ~ ? = + * % $ #")]