为什么ValidateInput(False)不起作用?

Dek*_*tid 34 vb.net asp.net-mvc tinymce request.form

我正在使用vb.net将我使用webforms创建的应用程序转换为asp.net mvc框架.我的一个观点有问题.当我提交表单时,我得到了死亡的黄色屏幕,上面写着"从客户端检测到有潜在危险的Request.Form值".我使用tinymce作为我的RTE.我已经设定了视图本身

ValidateRequest = "假"

我知道在MVC中,从我到目前为止所阅读的内容来看,它并不尊重它.所以我也把它放在控制器动作上.我尝试过不同的设置:

<ValidateInput(False), AcceptVerbs(HttpVerbs.Post)> _
Run Code Online (Sandbox Code Playgroud)

...和...

<AcceptVerbs(HttpVerbs.Post), ValidateInput(False)> _
Run Code Online (Sandbox Code Playgroud)

......还有这样......

<ValidateInput(False)> _
<AcceptVerbs(HttpVerbs.Post)> _
Run Code Online (Sandbox Code Playgroud)

只是为了看看它是否有所作为,但我仍然得到死亡的黄色屏幕.我只想为此视图设置它以及我的帖子所属的控制器中的特定操作.我错过了什么吗?

Jim*_*rts 133

使用asp.net 4,您还需要在web.config中配置验证模式.

将以下内容设置为<system.web>元素的子 元素:

<system.Web>
  ...
  <httpRuntime requestValidationMode="2.0"/>     
Run Code Online (Sandbox Code Playgroud)

Asp.Net 4 4.0默认将requestValidationMode设置为,它告诉系统在HTTP请求的BeginRequst阶段之前执行请求验证.验证将在系统到达action属性之前发生,告诉它不验证请求,从而使属性无效.设置requestValidationMode ="2.0"将恢复为asp.net 2.0请求验证行为,允许该ValidateInput属性按预期工作.

  • 这对于MVC 3来说是"固定的"吗? (17认同)
  • 如果我们将其恢复到2.0,还有什么需要注意的? (9认同)

Cha*_*ran 17

您确定要发布的控制器操作是您具有属性的控制器操作吗?

  • 我们都犯错误,没有他们就没有人会学习.:) (17认同)