我的代码是对MVC的$ .ajax调用的一部分。我希望根据我的控制器中的true或false来执行两个函数。
success: function () {
$('#mark').html('<span style='color: Green;'> Correct</span>');
},
error: function () {
$('#mark').html('<span style='color: Red;'> Incorrect</span>')
}
但是我应该从控制器返回什么,以便我可以调用成功或错误?我之前没有尝试过Ajax,所以我可以返回
return(true) or
return(false)
在哪种情况下,我用于MVC中的返回值的数据类型是什么?
答案 0 :(得分:17)
我更喜欢这种技术而不是返回内容(“true”)
return Json(true);
这样,您将获得一个传递给回调的布尔值:
success: function (response) {
if (response) {
// success code here
} else {
// error code here
}
}
答案 1 :(得分:3)
这个“成功”和“错误”与实际返回值无关,而是与http返回代码有关。 如果您的服务器返回一个http 200代码,请求是成功的。否则,如果服务器返回的代码比请求失败的50倍或40倍。
在您的情况下,您实际上可以返回一个空对象。
如果代码中存在异常,服务器会自动返回失败代码,而不是错误501代码将从服务器返回并且ajax请求失败。
查看http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
在你的情况下 你应该做一些像chaudcommeunnem发布的事情。但是你也可以留下你的错误段落,以防服务器未通过请求。
HTH
答案 2 :(得分:1)
return Content("true");
您需要检查字符串值或在ajax处理程序中转换为布尔值
答案 3 :(得分:0)
我认为只会引发ajax“error”事件 如果控制器动作出现问题。
您可以做的是从中获取返回值 控制器,然后调用你想要的功能
success: function(data) {
if (data == "true"){
$('#mark').html('<span style='color:Green;'> Correct</span>');
}
else {
$('#mark').html('<span style='color: Green;'> Incorrect</span>');
}
}
答案 4 :(得分:0)
javascript具有“falsey”值,这意味着以下所有内容都将评估为false ...
0, 空值, 不确定的, “” 为NaN
评估结果时,请执行此操作...
if (result) { // true part here }