我有一个ActionMethodSelectorAttribute,我有以下几行:
var req = controllerContext.RequestContext.HttpContext.Request.Form.AllKeys.Any() ? controllerContext.RequestContext.HttpContext.Request.Form : controllerContext.RequestContext.HttpContext.Request.QueryString;
然而 - 当表单发布HTML内容时会出现这种情况。
现在 - 我发布的InputModel上有AllowHtml,而且动作本身确实有ValidateInput(false)
我怀疑问题是我们尚未在管道中走得那么远
任何人都知道如何为此过滤器使用此功能?
答案 0 :(得分:4)
AllowHtml
仅适用于模型活页夹IIRC,而ValidateInput
过早,因为尚不确定将执行哪个操作。几天前我正在解决这个问题,经过一些挖掘后,我在ValidationUtility
找到了Microsoft.Web.Infrastructure.DynamicValidationHelper
:
Func<NameValueCollection> formGetter;
Func<NameValueCollection> queryStringGetter;
ValidationUtility.GetUnvalidatedCollections(HttpContext.Current, out formGetter, out queryStringGetter);
var form = formGetter();
var queryString = queryStringGetter()
它不是很漂亮,但它有效:)同时请注意,ValidationUtility在intellisense中是隐藏的。