【问题标题】:JsonResult function put unknown Dictionary itemJsonResult 函数把未知的字典项
【发布时间】:2017-05-05 15:01:52
【问题描述】:

在 MVC 中我有函数

[HttpPost] public JsonResult SaveCard(Dictionary> Data, int? IDPC) { 返回 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}

看到问题了吗?我希望数据为空,因为如果数组为空,ajax 不发送数据参数,所以请求只发送 IDPC 参数,函数 SaveCard 只检索一个参数,第二个可能为空,但不是。我现在不知道为什么以及为什么会有控制器和操作等 Data 参数项。

感谢您的帮助

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    MVC 解析器尝试解析 Params 字典,其中包含控制器名称和操作名称。

    如果要发送空字典,则应显式设置空值:

    $.ajax({
        url: "/Ajax/Admin/Hardware/SaveCard",
        type: "POST",
        accept: "application/json",
        data: { Data: null, IDPC: 5 },
        success: function (Response) { }
    });
    

    这将被解析成一个空字典。

    【讨论】:

    • 如果我将数据参数设置为空,我会收到错误消息“参数不能为空。参数名称:键。”
    猜你喜欢
    • 1970-01-01
    • 2010-10-09
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多