我正在将使用 webforms 创建的应用程序转换为使用 vb.net 的 asp.net mvc 框架。我的其中一个观点有问题。当我提交表单时,出现蓝屏死机,提示“从客户端检测到潜在危险的 Request.Form 值”。我使用tinymce 作为我的RTE。我已经设置了 View 本身
ValidateRequest="false"
我知道,从我到目前为止所读到的内容来看,MVC 并不尊重它。所以我也把它放在 Controller Action 上。我尝试过不同的设置:
<ValidateInput(False), AcceptVerbs(HttpVerbs.Post)> _
...还有...
<AcceptVerbs(HttpVerbs.Post), ValidateInput(False)> _
...还有这样的...
<ValidateInput(False)> _
<AcceptVerbs(HttpVerbs.Post)> _
只是想看看它是否有所不同,但我仍然遇到蓝屏死机。我只想为此 View 以及我的帖子所属的 Controller 中的特定操作设置它。我错过了什么吗?
最佳答案
使用 asp.net 4,您还需要在 web.config 中配置验证模式。
将以下内容设置为 <system.web>
的子项元素:
<system.Web>
...
<httpRuntime requestValidationMode="2.0"/>
Asp.Net 4 将 requestValidationMode 设置为 4.0
默认情况下,它告诉系统在 HTTP 请求的 BeginRequest 阶段之前执行请求验证。验证将在系统到达操作属性之前进行,告诉它不要验证请求,从而使该属性变得无用。设置 requestValidationMode="2.0"将恢复为 asp.net 2.0 请求验证行为,允许 ValidateInput
属性按预期工作。
关于asp.net-mvc - 为什么 ValidateInput(False) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/807662/