加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 为什么没有参数的POST不返回JSON

发布时间:2020-12-16 06:38:33 所属栏目:asp.Net 来源:网络整理
导读:我有一个控制器方法 [HttpPost]public ActionResult GetUserData(){ return Json(GetCurrentUser());} 我通过这样的方法调用$.ajax(): ServerCall: function (method,args,callback) { $.ajax({ type: 'POST',url: method,data: JSON.stringify(args),conte
我有一个控制器方法

[HttpPost]
public ActionResult GetUserData()
{
    return Json(GetCurrentUser());
}

我通过这样的方法调用$.ajax():

ServerCall: function (method,args,callback) {
        $.ajax({
            type: 'POST',url: method,data: JSON.stringify(args),contentType: 'application/json;charset=utf8',dataType: 'json',success: function (result) {
                if (callback) {
                    callback(result);
                }
            },error: function (err) {
            }
        });
    }

电话是这样的:

ServerCall('GetUserData',null,function(data){
});

实际上,当我进行此调用时,$.ajax会成功返回,但“data”为空.调试,responseText为空.在服务器端,调用GetUserData,它返回一个格式正确的Json对象(我??已经创建了自己的JSON ActionResult并验证了数据确实被写入了响应流.

如果我向服务器端方法添加一个虚拟参数:

[HttpPost]
public ActionResult GetUserData(string temp)
{
    return Json(GetCurrentUser));
}

一切都很完美.浏览器是IE8.我的问题是,任何人都可以解释为什么会这样吗?

更新:

注意下面的解决方法解决方案:我仍然有兴趣知道根本原因.

解决方法

没有repro.

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult GetUserData()
    {
        return Json(new { foo = "bar" });
    }
}

Index.cshtml视图:

<script type="text/javascript">
    var serverCall = function (method,error: function (err) {
            }
        });
    };

    serverCall('@Url.Action("GetUserData")',function (data) {
        alert(data.foo);
    });
</script>

结果:’bar’被警告(如预期的那样).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读