我想通过正则表达式验证器拦截表单字段中的“<”字符。我将分三个步骤描述问题:
第 1 步:当我尝试提交包含“<”字符的字段的表单时,我收到“潜在危险请求...” - 正如 ASP.NET 中所预期的那样。
第 2 步:为了避免 ASP.NET 的 RequestValidation,我在控制器中用“[ValidateInput(false)]”装饰了我的 Update 方法。
它按预期工作 - 现在我可以发布“<”字符而不会出错。
第 3 步:我将 xVal 与 DataAnnotations 一起使用。例如,[Required] 或 [StringLength(255)] 按预期工作。
但是当我使用:[RegularExpression ("^[^<>]*$", ErrorMessage = "Special characters are not allowed.")] 时,我再次收到“Potentially dangerousos request...”错误,尽管 [ValidateInput (false)] 指令。
发生了什么?是否有更简单的正则表达式验证方法,但使用 [ValidateInput(false)]?当然,我希望我的验证代码在模型中,而不是在控制器中。