我有一个 MVC 项目,其中过滤器检查请求参数中的参数。
request.Params["Username"]
但如果请求包含非法字符,则 params 属性会引发 HttpRequestValidationException 异常。
所以我必须捕获这个异常然后访问工作正常的 params 属性。
如何禁用此请求的验证,该请求作为 HttpRequestBase 到达帮助程序类?我不想为每个请求全局执行此操作,就在它到达此类时。
我有一个 MVC 项目,其中过滤器检查请求参数中的参数。
request.Params["Username"]
但如果请求包含非法字符,则 params 属性会引发 HttpRequestValidationException 异常。
所以我必须捕获这个异常然后访问工作正常的 params 属性。
如何禁用此请求的验证,该请求作为 HttpRequestBase 到达帮助程序类?我不想为每个请求全局执行此操作,就在它到达此类时。
正如@Jon-S 评论的那样, UnvalidatedRequestValues 是您可以绕过对单个值的验证的方式。在此示例中,它将是:
request.Unvalidated["Username"]
如果没有看到您的更多代码,我无法确定,但听起来您可以将请求放入 try-catch 中。
try
{
...
request.Params["Username"]
...
}
catch (HttpRequestValidationException ex)
{
//your error handling goes here.
}