我需要发送html。我收到错误(这台机器transalate):
检测到来自的Request.Form的潜在危险值 客户端(Description =" eqqdaqd asda
描述:可能发现验证请求的过程 危险客户端输入值,查询处理中断。 此值可能表示试图破坏安全性 应用程序,例如跨站点脚本攻击"。允许 页面覆盖默认扫描请求应用程序,请参阅httpRuntime 配置属性以设置requestValidationMode requestValidationMode =" 2.0"。示例:。设置此值后,即可 通过设置validateRequest =" false"来禁用请求验证在里面 页面指令或配置部分。但是,在这 在应用程序中强烈要求明确检查所有条目。 有关更多信息,请参阅 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" />
答案 0 :(得分:4)
您可以使用ValidateInput
属性修饰控制器操作:
[HttpPost]
[ValidateInput(false)]
public ActionResult Create(NewsView model)
{
...
}
在您的示例中,您正在POST控制器操作中设置属性,但这太晚了,因为在调用操作之前执行了验证。或者,如果您只想对视图模型上的给定属性禁用验证,则可以使用AllowHtml
属性对其进行修饰:
[AllowHtml]
public string Description { get; set; }
现在,您不再需要使用ValidateInput
属性修饰控制器操作。
答案 1 :(得分:0)
您可以尝试使用AllowHtmlAttribute
或者,如果您要使用ValidateRequest
,还应设置requestValidationMode = "2.0"