我使用jquery将字典发布到我的控制器操作:
客户端代码:
var dict = {};
// var dict = {"type": "type-1"}; // this works fine
$.post('/MyController/MyAction?id=' + jsId + '&data=' + jsData, { additionalFields : dict }, function () { //some callback });服务器端代码:
    public ActionResult MyAction([FromUri]Guid id, [FromUri]string data, [FromBody]Dictionary<string, string> additionalFields)
    {
        //some code
        return RedirectToAction("Index");
    }如果没有其他数据,而dict变量为空,则在服务器端接收奇怪的数据: additionalFields字典将包含两个条目:
控制器:MyController
action:MyAction
我怎么才能修好它?
下面的图片显示了当我发布空字典时服务器端的数据:

发布于 2012-12-05 10:45:24
当字典不包含值时,尝试在投递到服务器之前将dict设置为null
dict = null;发布于 2012-12-05 10:52:27
看起来,ModelBinder在"Post“请求的正文中选择了一些数据。为什么需要FromBody属性?
尝试删除它,这将解决您的问题。
https://stackoverflow.com/questions/13719187
复制相似问题