Asp.net mvc “如何显示”的错误消息;潜在危险的请求。表单值“;在ASP.NET MVC 3中向用户发送
关于这个特殊的例外有很多问题,但我找不到任何适合我需要的。我不想禁用验证,也不想手动转义每个表单输入值 是否有一种向用户显示此错误消息的方式,与ASP.NET MVC通知用户未在表单中提供所需值的方式相同?我认为这将是处理此类错误的最干净的方法。Asp.net mvc “如何显示”的错误消息;潜在危险的请求。表单值“;在ASP.NET MVC 3中向用户发送,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,关于这个特殊的例外有很多问题,但我找不到任何适合我需要的。我不想禁用验证,也不想手动转义每个表单输入值 是否有一种向用户显示此错误消息的方式,与ASP.NET MVC通知用户未在表单中提供所需值的方式相同?我认为这将是处理此类错误的最干净的方法。$(“表单”).submit(函数(e){ $("form").submit(function(e){ var invalid = $("form").find("input:text,input:hidden,textarea").filter
$(“表单”).submit(函数(e){
$("form").submit(function(e){
var invalid = $("form").find("input:text,input:hidden,textarea").filter(function() {
var value = $(this).val();
var encoded = $("<div>").html(value).text();
return value != encoded;
}).length > 0;
if (invalid)
{
e.preventDefault();
//show validation message
}
}
var invalid=$(“form”).find(“输入:text,输入:hidden,textarea”).filter(函数(){
var值=$(this.val();
var encoded=$(“”).html(value.text();
返回值!=已编码;
}).长度>0;
如果(无效)
{
e、 预防默认值();
//显示验证消息
}
}
此错误只是ASP.net中的一个安全网;Microsoft希望您在检查是否正确编码文本后禁用此错误
这不是手动转义每个输入表单值。这是关于HTML编码所有呈现到页面的面向用户的文本。只是在表单中输入的文本经常显示回用户
例如,字符串“My age is>21&<90”
不是有效的HTML,并且不会正确显示给用户(这可能在跨站点脚本攻击中被滥用)。如果您显示的任何字符串都不是有效的HTML,您必须对其进行HTML编码。幸运的是,在MVC中有很多简单的方法可以做到这一点(使用
运算符是其中之一)。如果操作正确,则无需启用此错误
很抱歉,我知道这不是您要求的答案,但我相信,出于许多原因,保持此错误处于打开状态只会对用户不友好。您使用的是jQuery吗?未标记,但我可以想到一个解决方案客户端,它可能会工作。我可以使用jQuery,但不想为它们编写自己的验证逻辑,因为如果ASP.NET MVC中添加了本质上危险的值验证,那么我的实现中将会丢失它。此外,总有可能有人在没有JavaScript支持的情况下使用我的网站,并且他们将被发送到一个通用的“内部服务器错误”页面不会告诉他们任何事情。请看我的答案…应该很接近。您可能需要在文本区域中的换行符处进行一些调整。如果您不想关闭请求验证,您认为您可以如何完成此服务器端?这为我澄清了这一点。我不知道这只是一个安全网。