在MVC中我有功能
[HttpPost] public JsonResult SaveCard(Dictionary<string, Dictionary<string, string>> Data, int? IDPC) { return Json(new { Data = Data, IDPC: IDPC }); }
如果我通过jquery发布数据,如
$.ajax({
url: "/Ajax/Admin/Hardware/SaveCard",
type: "POST",
accept: "application/json",
data: { Data: [], IDPC: 5 },
success: function (Response) { }
});
然后将返回
{"Data":{"controller":{},"action":{}},"IDPC":5}
看到问题?我希望Data null为null,因为如果数组为空,ajax不发送Data参数,所以请求只发送IDPC参数,函数SaveCard只检索一个参数,第二个可能是null,但不是。我现在不知道为什么以及为什么有数据参数项如控制器和动作。
感谢您的帮助
答案 0 :(得分:0)
MVC解析器尝试解析Params字典,该字典包含控制器名称和操作名称。
如果要发送空字典,则应明确设置空值:
$.ajax({
url: "/Ajax/Admin/Hardware/SaveCard",
type: "POST",
accept: "application/json",
data: { Data: null, IDPC: 5 },
success: function (Response) { }
});
这将被解析为一个空字典。