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" />
您可以使用
ValidateInput
属性装饰控制器操作:
[HttpPost]
[ValidateInput(false)]
public ActionResult Create(NewsView model)
{
...
}
在您的示例中,您将在 POST 控制器操作中设置属性,但这为时已晚,因为在调用操作之前会执行验证。或者,如果您只想禁用视图模型上给定属性的验证,则可以使用 AllowHtml
属性对其进行修饰:
[AllowHtml]
public string Description { get; set; }
现在,您不再需要使用 ValidateInput
属性修饰控制器操作。
您可以尝试使用 AllowHtmlAttribute或者,如果要使用ValidateRequest
则还应设置requestValidationMode = "2.0"