大家好我正在实施一个下载电子邮件并将其保存到数据库的程序。我将内容绑定到webgrid并在行上单击我打开一个视图来显示邮件内容。一切都运行正常,但当我有html标签的内容时,我得到网页错误,因为附加可以帮助我。这是我在控制器中的代码
public JsonResult GetMessageDetails(string bodyContent)
{
ViewBag.bodyContent = bodyContent;
return Json(bodyContent, JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:3)
这是MVC中的一项安全功能,可以防止Cross site scripting攻击。
跨网站脚本如何运作?
想象一下,您正在阅读一些html输入并在页面中呈现它而不像
那样编码@Html.Raw(Model.SomePropertyWhichHasHtmlContent)
现在,如果我发布了这个
,而不是发布答案 "<script>alert('Bazinga!'); window.location.href='http://www.mywebsite.com';</script>"
当您尝试使用Html.Raw()
方法在页面中呈现此html内容时,用户将在看到警报后重定向到www.mywebsite.com。
现在,在您的情况下,如果您信任此方法的输入,知道如何在重新显示页面时始终对内容进行编码,并希望覆盖此行为,则可以使用{{1}修饰您的操作方法值为ValidateInput
false