C# MVC 2和ASP.NET 4请求验证异常

C# MVC 2和ASP.NET 4请求验证异常,c#,asp.net-mvc-2,C#,Asp.net Mvc 2,我正在开发一个从另一个开发商店继承的应用程序,我最近从MVC1/.NET2/3.5升级到MVC2/.NET4。除了一页外,一切正常。在这个页面上有一个iframe,它加载一个TinyMCE实例,并允许对一些HTML模板进行内联编辑。在托管页面上,有一个连接到submit按钮的JavaScript事件,单击该按钮时,会获取iframe的innerHtml值,将其转换为JSON,并将其放置到隐藏的表单字段中 当表单发布时,我收到了臭名昭著的“一个潜在危险的请求。检测到表单值…”现在我遵循微软的白皮书

我正在开发一个从另一个开发商店继承的应用程序,我最近从MVC1/.NET2/3.5升级到MVC2/.NET4。除了一页外,一切正常。在这个页面上有一个iframe,它加载一个TinyMCE实例,并允许对一些HTML模板进行内联编辑。在托管页面上,有一个连接到submit按钮的JavaScript事件,单击该按钮时,会获取iframe的innerHtml值,将其转换为JSON,并将其放置到隐藏的表单字段中

当表单发布时,我收到了臭名昭著的“一个潜在危险的请求。检测到表单值…”现在我遵循微软的白皮书并添加了

<httpRuntime requestValidationMode="2.0" />
我仍然得到这个错误。下面是相关的堆栈

 [HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (HtmlContent="...orrectly? <a href=\"*|ARCHIVE|...").]
 System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +8730676
 System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +122
 System.Web.HttpRequest.get_Form() +114
 System.Web.HttpRequestWrapper.get_Form() +11
 System.Web.Mvc.HttpRequestExtensions.GetHttpMethodOverride(HttpRequestBase request) +235
 System.Web.Mvc.AcceptVerbsAttribute.IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo) +119         
 System.Web.Mvc.<>c__DisplayClass11.<RunSelectionFilters>b__d(ActionMethodSelectorAttribute attr) +57
 System.Linq.Enumerable.All(IEnumerable`1 source, Func`2 predicate) +145
 System.Web.Mvc.ActionMethodSelector.RunSelectionFilters(ControllerContext controllerContext, List`1 methodInfos) +524
 System.Web.Mvc.ActionMethodSelector.FindActionMethod(ControllerContext controllerContext, String actionName) +122
 System.Web.Mvc.ReflectedControllerDescriptor.FindAction(ControllerContext controllerContext, String actionName) +182
 System.Web.Mvc.ControllerActionInvoker.FindAction(ControllerContext controllerContext, ControllerDescriptor controllerDescriptor, String actionName) +47
 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +283
 System.Web.Mvc.Controller.ExecuteCore() +136
 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +111
 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +39
 System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +65
 System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +44
 System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +42
 System.Web.Mvc.Async.WrappedAsyncResult`1.End() +140
 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +54
 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +52
 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +38
 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8836913
 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
[HttpRequestValidationException(0x80004005):从客户端检测到一个潜在危险的请求。表单值(HtmlContent=“…正确吗?检查web.config中的“页面”部分是否如下所示:

<pages validateRequest="false" ...>...</pages>
。。。
如果没有,请尝试添加validateRequest属性。它对我有效,因为几个月前我遇到了相同的问题

编辑:哈哈,我没看到这是一篇这么老的帖子。但是我把我的安全套留下了,因为它可能会帮助其他人

<pages validateRequest="false" ...>...</pages>