asp.net-mvc – 从ASP.NET MVC操作返回什么来允许jQuery ajax成功事件触发?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 从ASP.NET MVC操作返回什么来允许jQuery ajax成功事件触发?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
现在我的ajax帖子都会触发他们的错误事件,即使该操作没有引起错误。我有一个ASP.NET MVC动作,看起来像:
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult StuffToDo(int id)
{
     // do varIoUs things that work ...
     return new JsonResult(); // i have to return something,so this...
}

在客户端我有这个jQuery:

$('#actionClick').click(function() {
     if (confirm('Are you sure?')) {
         $.ajax({
             type: "POST",url: "/Customer/StuffToDo/<%= Model.Customer.Id %>",contentType: "application/json; charset=utf-8",data: "{}",dataType: "json",success: function() {
                 ShowSuccessResult("Yay!");
             },error: function(xhr,ajaxOptions,thrownError) {
                 ShowErrorResult("Boo! Message:" + xhr.responseText);
             }
         });
      }
      return false;
 });

如果操作成功(没有异常抛出),那么我会期望触发成功事件处理程序。相反,错误事件正在触发。有什么我应该回传或改变行动,以便成功事件发生?

我意识到这个问题基本上和this other question一样,但是我的错误处理程序已经有了扩展的签名来解决对方的问题。

编辑
根据请求,这里是我得到的答复:

Link to the screen shot(不知道该怎么显示)

编辑
我将返回值更改为Null,以查看是否影响任何内容,但不会改变任何行为。

编辑
它开始看起来像这是HTTPS的问题。我得到了来自请求的多个响应。前2个是401个消息,然后我得到一个200。

解决方法

我相信问题是你没有在JsonResult中返回任何东西。尝试:
return this.Json(string.Empty);

看看是否有效。我认为问题是你没有返回到jQuery调用,而不是一个空的JSON集:

{}

猜你在找的asp.Net相关文章