【发布时间】:2011-08-30 20:53:21
【问题描述】:
我的视图模型中有这个属性:
[DisplayName("Region")]
public int? RegionId { get; set; }
我将我的视图模型传递给我的控制器,如果 RegionId 为空,它会在 ModelState.IsValid 处失败。如果我将一个整数传递给它,它就可以正常工作。
错误信息是:
值'null'对区域无效
在检查ModelState.IsValid 之前,我也尝试过调用它,但我得到了同样的错误:
if (viewModel.RegionId == null)
viewModel.RegionId = (int?)null;
这里有什么问题?为什么我不能将 null 分配给可以为 null 的东西?
【问题讨论】:
-
if (viewModel.RegionId == null) viewModel.RegionId = (int?)null;为什么在 null 已经为 null 时还要分配它? -
@Bala - 我查看了有关同一问题的其他帖子,他们说分配
(int?)null而不是null。 -
@Steven Bala 提出了一个很好的观点。如果 RegionID 已经为空,则无需执行任何操作,只需省略第二行,因为即使它有效,它也不会执行任何操作。
标签: c# asp.net asp.net-mvc asp.net-mvc-3