C# 如何检查可为Null的整数数组是否为Null?
这个类是通过一个AJAX帖子填充的C# 如何检查可为Null的整数数组是否为Null?,c#,ajax,nullable,C#,Ajax,Nullable,这个类是通过一个AJAX帖子填充的 public class FilterViewModel { public int?[] size { get; set; } public decimal? Price { get; set; } } 价格属性可以通过以下方式轻松检查: if (Price.HasValue) { } 但是大小属性呢? 虽然它被声明为可空且其中不存在任何数据,但这里是烧坏 这是公布的
public class FilterViewModel
{
public int?[] size { get; set; }
public decimal? Price { get; set; }
}
价格属性可以通过以下方式轻松检查:
if (Price.HasValue)
{
}
但是大小属性呢?
虽然它被声明为可空且其中不存在任何数据,但这里是烧坏
这是公布的数据
生的
{"man":"2","size":"","color":"","Order":"0","Sorting":"0"}
Ajax post的执行如下
$.ajax({
url: path, type: "POST", cache: "false",
dataType: "json", contentType: "application/json; charset=utf-8",
data: JSON.stringify(postData),
traditional: true,
converters: {'text json': true}
}).success(function (responseText) {
$('#Grid').replaceWith(responseText);
}).error(function (responseText){
swal("Error!", "Ooops", "error");
});
数组是引用类型,而不管其中存储的是什么类型的值,因此要检查null-
size==null
但看起来数组中确实有元素——您还可以检查所有元素是否都是“null”,比如size.all(x=>!x.HasValue)
请注意,上面回答了您的问题,但它不太可能有助于解决您的问题,这可能与请求发送到服务器的方式有关。正如注释中所建议的那样,使用来查看确切的请求可能会有所帮助。只是为了澄清:
size
是一个可为空的整数数组,您没有“将数组声明为可为空的”-数组是引用类型。那么,AJAX帖子有问题吗?数组是如何在服务器端生成的?您还可以使用LINQmodel.size.All(x=>x.HasValue)
这将检查model.size
中的所有值是否都有值。或者model.size.Where(x=>x.HasValue)
如果您想从model.size
获取所有非空值。不确定这里的问题是什么。显然,数组不是空的,因为其中有一项。但该项恰好为空。该for循环是如何编译的?没有从int的隐式转换?谢谢你的回答,先生。我要试试这个。我还更新了发布的数据。