C# 向控制器发送json null会导致列表中包含0个元素

C# 向控制器发送json null会导致列表中包含0个元素,c#,asp.net-mvc,json,null,asp.net-mvc-controller,C#,Asp.net Mvc,Json,Null,Asp.net Mvc Controller,我正在从浏览器发出json请求,将{Par:null}发送到我的控制器(C#): publicJsonResult MyControllerMethod(列表Par){ 根据PAR是否为零来做一些事情 } 但是PAR作为一个清单>代码> 0个项目,这是正确的行为吗?我认为我以前在类似的情况下传递过null,它仍然是null。好的,看看mvc绑定代码 对于url中的每个参数,它都会尝试绑定一个对象 如果它是IList,则会创建列表,然后尝试向其中添加对象,从而在传回null时返回空列表 因此,如

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

publicJsonResult MyControllerMethod(列表Par){
根据PAR是否为零来做一些事情
}

但是PAR作为一个<代码>清单>代码> 0个项目,这是正确的行为吗?我认为我以前在类似的情况下传递过null,它仍然是null。

好的,看看mvc绑定代码

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

因此,如果没有指定参数,那么它将不会绑定任何内容,从而使其为null


答案是,如果在服务器端想要NULL,就不要在客户端< /P>上指定参数名,那么如果PAR.CONTUTE()是空的,你可以检查它的0,否则,如果它作为一个零元素的数组对象被返回,那么对于PAL= NULL或PAL= []需要不同的行为。
public JsonResult MyControllerMethod(List<Guid> Par){
    //do some stuff depending on whether Par is null
}