我无法获取AllowHtml
属性(在DirtySearch
类中使用)来处理以下操作:
public ActionResult NewEntry(string searchIndex, string searchString)
{
var model = new SearchResultsModel(loserID, searchIndex, searchString);
return View(model);
}
[HttpPost]
public ActionResult GetSearchResults(DirtySearch dirtySearch)
{
return RedirectToAction("NewEntry", new { searchIndex = dirtySearch.SearchIndex, searchString = dirtySearch.SearchString });
}
我收到从客户端检测到潜在危险的Request.Path值(%)错误。
我已将<httpRuntime requestValidationMode="2.0" />
添加到我的Web.config中,并将ModelMetadataProviders.Current = new DataAnnotationsModelMetadataProvider();
放入Application_Start
方法。
我觉得我在这里忽略了一些明显的东西。
答案 0 :(得分:0)
如果您在httpRuntime
的{{1}}节点上添加了其他属性,则可以取消此错误:
web.config
但您最好阅读文档以了解这些设置将关闭哪些安全功能。
答案 1 :(得分:0)
不要压制此错误。由于PATH仍然存在问题,您似乎遇到了安全问题。路径是什么(检查小提琴,以便您可以看到所有请求详细信息) 取自: http://blogs.msdn.com/b/marcinon/archive/2010/11/09/mvc3-granular-request-validation-update.aspx
“MVC 3中的粒度请求验证仅支持关闭Form(有时是QueryString)的验证。路径仍将被验证,以及剩余的Request集合。
您的模块应该通过System.Web.Helpers.Validation.Unvalidated()方法(在System.Web.WebPages.dll中可用)访问Request值,以绕过默认请求验证(这是机制使用的内容)允许AllowHtml工作)。“