在 ajax 调用中返回未定义类型的数据

Returning undefined type of data on ajax call

我有一个 jquery 脚本,它 ajax 在我的 MVC 应用程序的控制器中调用我的操作:

$('#save').click(function () {
    $.post(url, { id: id, text: textarea.val() }, function (data) {
        if (data) {
            row.children('td').eq(3).text(textarea.val());
            row.children('td').eq(4).text('Da');
            row.children('td').eq(5).hide();
            $('#napomena').val('');
            form.hide();
        }
    });
});

这是我的控制器:

  public ActionResult PravdanjeIzostanaka(string id, string text)
        {
            var obj = db.Odsutnost.Find(Convert.ToInt32(id));
            if(obj!=null && text.Trim()!="")
            {
                obj.Napomena = text;
                obj.Opravdano = true;
                db.SaveChanges();
                return RedirectToAction("PregledIzostanaka");
            }
            return null;  // what am I supposed to return here so that data type in ajax would be undefined??          
        }

如您所见,我正在检查 obj 对象和文本字段是否为 !=null 以及是否为空。如果不满足这两个要求,我想发出一点警报,基本上会说:"Text field is required!" 并将我的脚本修改为如下内容:

 if (data!=="undefined") {
            row.children('td').eq(3).text(textarea.val());
            row.children('td').eq(4).text('Da');
            row.children('td').eq(5).hide();
            $('#napomena').val('');
            form.hide();
        }
else{
alert('Text field is required!');
}

所以我需要修改我的脚本和动作(动作应该 return 某些东西 ajax 会认为它是未定义的,以便我可以发出警报)...

有人可以帮我解决这个问题吗? :)

只是 return 一个 json 未定义的字符串。更像下面的:

public ActionResult PravdanjeIzostanaka(string id, string text)
        {
            var obj = db.Odsutnost.Find(Convert.ToInt32(id));
            if(obj!=null && text.Trim()!="")
            {
                obj.Napomena = text;
                obj.Opravdano = true;
                db.SaveChanges();
                return RedirectToAction("PregledIzostanaka");
            }
            return json("undefined");           
        }