【问题标题】:sending json null to controller results in list with 0 elements将 json null 发送到控制器会导致列表中包含 0 个元素
【发布时间】:2013-07-24 01:36:43
【问题描述】:

我正在从浏览器发出 json 请求,将 {Par: null} 发送到我的控制器 (C#):

public JsonResult MyControllerMethod(List<Guid> Par){
    //do some stuff depending on whether Par is null
}

但是 Par 作为 List&lt;Guid&gt; 进入控制器,有 0 个项目,这是正确的行为吗?我以为我之前在类似情况下将 null 传回来,但它仍然为 null。

【问题讨论】:

  • 所以你可以检查 Par.Count() 是否为 0,而不是它的 null 否则不是
  • 如果它作为零元素的数组对象被发回,则 Par = null 或 Par = [] 需要不同的行为

标签: c# asp.net-mvc json null asp.net-mvc-controller


【解决方案1】:

好的,看看mvc绑定代码

对于url中的每个参数,它都会尝试绑定一个对象 如果它是一个 IList,那么它会创建列表然后尝试向其中添加对象,因此在传回 null 时是空列表。

因此,如果未指定参数,则它不会绑定任何内容,从而使其为空。

因此答案是,如果您希望在服务器端为 null,请不要在客户端指定参数名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 2015-06-25
    • 1970-01-01
    相关资源
    最近更新 更多