在ajax帖子中,undefined不是一个函数

时间:2015-02-02 14:41:04

标签: jquery ajax asp.net-mvc-4

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

  

undefined不是函数

这会将我的表单值从我的MVC视图发布到Controller,如果有错误处理

    $("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只会被设置为空字符串值或等价物。

1 个答案:

答案 0 :(得分:0)

如果data.Error = undefined

,您将遇到此错误

为避免这种情况,请执行此操作

$("#modalDetail").html(data.Error === undefined ? "" : data.Error).hide();

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