Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Jquery 未定义在ajax post期间不是一个函数_Jquery_Ajax_Asp.net Mvc 4 - Fatal编程技术网

Jquery 未定义在ajax post期间不是一个函数

Jquery 未定义在ajax post期间不是一个函数,jquery,ajax,asp.net-mvc-4,Jquery,Ajax,Asp.net Mvc 4,我每页有一个表单,我已经多次成功地测试了这段代码,但现在由于某种原因,我不断遇到以下错误: 未定义不是一个函数 这会将我的表单值从我的MVC视图发布到控制器,如果处理时出错 $("form").submit(function () { $.post($(this).attr("action"), $(this).serialize(), function (data) { if (!data.IsOK) { $("#

我每页有一个表单,我已经多次成功地测试了这段代码,但现在由于某种原因,我不断遇到以下错误:

未定义不是一个函数

这会将我的表单值从我的MVC视图发布到控制器,如果处理时出错

    $("form").submit(function () {
        $.post($(this).attr("action"), $(this).serialize(), function (data) {
            if (!data.IsOK) {
                $("#modalTitle").html(data.Title);
                $("#modalMessage").html(data.Message);
                $("#modalDetail").html(data.Error).hide(); // error occurs here
                $("#modalDialog").css("display", "block");
                $("#modalBackground").css("display", "block");
            }
            else {
                window.location.href = '@Url.Content("~/")';
            }
            return;
        });

        return false;
    });
其想法是生成一个模式对话框,告诉用户“出了什么问题”,并提供可用于跟踪问题的信息。但是,在许多情况下,用户无法看到
#modalDetail
div,因为它将包含只有sysadmin用户才应该看到的堆栈跟踪(data.Error)


我有一种感觉,如果data.error为空,则会发生此错误。但在我看来,该div的html仅会设置为空字符串值或等效值。

如果
data.error=undefined

所以要避免这种情况,就这样做

$(“#modalDetail”).html(data.Error==未定义?”:data.Error.hide()


这只是检查
错误
是否未定义,如果未定义,则添加空字符串。

尝试
控制台.log(data)
以确保所有变量都已设置。
如果(!data.IsOK){
似乎有点奇怪。如果
data.IsOK
为true,则使用
如果(!data.IsOK)填充数据{
您确定
数据.Title
等未定义。看起来像
数据。错误可能未定义。同时执行
隐藏()
不会阻止用户看到它。他们可以只查看普通的HTML,因此如果这是用户不应该看到的真正的私人信息。甚至不要返回该值,它不是系统管理员。尽管我猜错误消息并不太重要。