Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc “如何显示”的错误消息;潜在危险的请求。表单值“;在ASP.NET MVC 3中向用户发送_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

Asp.net mvc “如何显示”的错误消息;潜在危险的请求。表单值“;在ASP.NET MVC 3中向用户发送

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

关于这个特殊的例外有很多问题,但我找不到任何适合我需要的。我不想禁用验证,也不想手动转义每个表单输入值

是否有一种向用户显示此错误消息的方式,与ASP.NET MVC通知用户未在表单中提供所需值的方式相同?我认为这将是处理此类错误的最干净的方法。

$(“表单”).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支持的情况下使用我的网站,并且他们将被发送到一个通用的“内部服务器错误”页面不会告诉他们任何事情。请看我的答案…应该很接近。您可能需要在文本区域中的换行符处进行一些调整。如果您不想关闭请求验证,您认为您可以如何完成此服务器端?这为我澄清了这一点。我不知道这只是一个安全网。