如何将我的MVC中的true或false返回到jQuery Ajax?

时间:2011-04-22 15:07:10

标签: jquery asp.net-mvc

我的代码是对MVC的$ .ajax调用的一部分。我希望根据我的控制器中的true或false来执行两个函数。

success: function () {
    $('#mark').html('<span style='color: Green;'>&nbsp;&nbsp;Correct</span>');
},
error: function () {
    $('#mark').html('<span style='color: Red;'>&nbsp;&nbsp;Incorrect</span>')
}

但是我应该从控制器返回什么,以便我可以调用成功或错误?我之前没有尝试过Ajax,所以我可以返回

return(true) or 
return(false)

在哪种情况下,我用于MVC中的返回值的数据类型是什么?

5 个答案:

答案 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;'>&nbsp;&nbsp;Correct</span>');
             }
             else {
                 $('#mark').html('<span style='color: Green;'>&nbsp;&nbsp;Incorrect</span>');
             }
          }

答案 4 :(得分:0)

javascript具有“falsey”值,这意味着以下所有内容都将评估为false ...

0, 空值, 不确定的, “” 为NaN

评估结果时,请执行此操作...

if (result) { // true part here }