ASP.NET MVC ValidateInput(false)停止使用xVal和[RegularExpression] DataAnnotation

Ale*_*x42 20 validation asp.net-mvc xval data-annotations

我想通过正则表达式验证器截取表单字段中的"<"字符.我将分三个步骤描述问题:

第1步:当我尝试提交一个包含"<"字符的字段的表单时,我得到了"潜在危险请求..." - 正如ASP.NET中预期的那样.

第2步:为了避免ASP.NET的RequestValidation,我使用"[ValidateInput(false)]"在控制器中修饰我的Update方法.

它按预期工作 - 现在我可以毫无错误地发布"<"字符.

第3步:我将xVal与DataAnnotations一起使用.例如,[Required]或[StringLength(255)]按预期工作.

但是当我使用时:[RegularExpression("^ [^ <>]*$",ErrorMessage ="不允许使用特殊字符.")],我再次收到"潜在的dangeros请求..."错误,尽管[ValidateInput] (假)]指令.

发生了什么?有没有更简单的正则表达式验证方法,但是[ValidateInput(false)]到位了吗?当然,我想在模型中使用验证码,而不是在控制器中.

Nic*_*son 0

\n

不,这是 MVC 1 + xVal 中的一个问题。\n 在 MVC 2 中,验证按预期工作(并且不再需要 xVal\n)\xe2\x80\x93 Alex42

\n
\n\n

看起来机器人仍在继续将这个推到顶部。您能否将答案标记为已接受,以便它知道?

\n