【发布时间】:2016-02-17 13:49:24
【问题描述】:
我有一个 jquery 脚本,它在我的 MVC 应用程序的控制器内对我的操作进行 ajax 调用:
$('#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 以及是否为空。如果这两个要求没有得到满足,我想发出一点警告,基本上会说:“文本字段是必需的!”并将我的脚本修改为如下内容:
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!');
}
所以我需要修改我的脚本和操作(操作应该返回一些 ajax 将其视为未定义的内容,以便我可以发出警报)...
有人可以帮我解决这个问题吗? :)
【问题讨论】:
-
"undefined"不是undefined。一个是字符串,另一个是undefined。你可以做typeof data !== "undefined",因为 typeof 运算符可以给你"undefined" -
好的,但是我需要在我的操作中返回什么,所以它是 typeof data === "undefined" 以便我显示警报弹出窗口?它显然不是空的,因为它不工作......
-
我没有意识到
data是 AJAX 的结果。在这种情况下,您将无法获得undefined值。 -
好吧,它不必是未定义的......只是检查文本框是否为空并发出警报弹出消息......不管它的客户端还是服务器端......任何想法?
-
也许会返回一个 404 状态码并将其作为
error进行管理?
标签: javascript jquery ajax asp.net-mvc-4 actionresult