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集:

{}

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...