我正在使用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)
只是为了看看它是否有所作为,但我仍然得到死亡的黄色屏幕.我只想为此视图设置它以及我的帖子所属的控制器中的特定操作.我错过了什么吗?
我想通过正则表达式验证器截取表单字段中的"<"字符.我将分三个步骤描述问题:
第1步:当我尝试提交一个包含"<"字符的字段的表单时,我得到了"潜在危险请求..." - 正如ASP.NET中预期的那样.
第2步:为了避免ASP.NET的RequestValidation,我使用"[ValidateInput(false)]"在控制器中修饰我的Update方法.
它按预期工作 - 现在我可以毫无错误地发布"<"字符.
第3步:我将xVal与DataAnnotations一起使用.例如,[Required]或[StringLength(255)]按预期工作.
但是当我使用时:[RegularExpression("^ [^ <>]*$",ErrorMessage ="不允许使用特殊字符.")],我再次收到"潜在的dangeros请求..."错误,尽管[ValidateInput] (假)]指令.
发生了什么?有没有更简单的正则表达式验证方法,但是[ValidateInput(false)]到位了吗?当然,我想在模型中使用验证码,而不是在控制器中.