ValidateRequest=“false” 不起作用

本文关键字:不起作用 false ValidateRequest | 更新日期: 2023-09-27 18:35:00

我需要发送html。我收到错误(这台机器翻译(:

检测到请求表单的潜在危险值,接收自 客户端(描述 = "eqqdaqd asda

说明:发现可能出现的验证请求的过程 危险的客户端输入值,查询处理中断。 此值可能表示试图危害 应用程序,例如"跨站点脚本"的攻击。要允许 页面覆盖默认扫描请求应用程序,请参阅 httpRuntime 用于设置请求验证模式的配置属性 请求验证模式 = "2.0"。 例:。设置此值后,您可以 通过在 页面指令或配置节。 然而,在这个 在应用程序中敦促大小写明确检查所有条目。 有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=153133。

 public ActionResult Create()
        {
            this.ValidateRequest = false;
            return View();
        }
        //
        // POST: /Admin/News/Create
        [HttpPost]
        public ActionResult Create(NewsView model)
        {
            this.ValidateRequest = false;
            try
            {
               //logic
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

此控制器位于竞技场管理员中。我在 web.config 中设置

<system.web>
    <httpRuntime requestValidationMode="2.0" />

ValidateRequest=“false” 不起作用

您可以使用

ValidateInput 属性装饰控制器操作:

[HttpPost]
[ValidateInput(false)]
public ActionResult Create(NewsView model)
{
    ...
}

在您的示例中,您将在 POST 控制器操作中设置属性,但这为时已晚,因为在调用操作之前会执行验证。或者,如果您只想禁用视图模型上给定属性的验证,则可以使用 AllowHtml 属性对其进行修饰:

[AllowHtml]
public string Description { get; set; }

现在,您不再需要使用 ValidateInput 属性修饰控制器操作。

您可以尝试使用 AllowHtmlAttribute或者,如果要使用ValidateRequest则还应设置requestValidationMode = "2.0"