c# – 将null分配给可空的int – “值”null“对属性无效”

前端之家收集整理的这篇文章主要介绍了c# – 将null分配给可空的int – “值”null“对属性无效”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的视图模型中有这个属性
[DisplayName("Region")]
public int? RegionId { get; set; }

我将我的视图模型传递给我的控制器,如果RegionId为空,它将在ModelState.IsValid失败.如果我传递一个整数,它可以正常工作.

错误信息是:

The value ‘null’ is not valid for Region

在我检查ModelState.IsValid之前,我也尝试过调用它,但是我得到了同样的错误

if (viewmodel.RegionId == null)
    viewmodel.RegionId = (int?)null;

这里有什么问题?为什么不能将null赋值给可空的东西?

解决方法

在Global.asax.cs文件中,在Application_Start方法中,添加以下行:
DataAnnotationsModelValidatorProvider.AddImplicitrequiredAttributeForValueTypes = false;

问题是,即使对于可空值类型,默认情况下,默认ValidatorProvider添加“必需”属性.

猜你在找的C#相关文章