【问题标题】:Allow Nullable Model in Views允许视图中的可空模型
【发布时间】:2019-11-12 01:16:33
【问题描述】:
当使用 struct/enum 或任何其他 值 类型作为我的 MVC 模型时,编译器似乎显示错误。
CS0037 无法将 null 转换为“MyEnum”,因为它是不可为空的
值类型
我创建了一个新的 MVC 项目(在 VS 2019 中),创建了一个枚举
public enum MyEnum
{
One,
Two,
Three
}
并将其作为模型放在“关于”视图中:
为什么会这样?
【问题讨论】:
标签:
c#
asp.net-mvc
visual-studio
nullable
visual-studio-2019
【解决方案1】:
使用结构/值类型时编译器似乎显示错误
作为我的 MVC 模型。
根据this link,模型绝对可以是或者class 或struct。有利有弊,但两者都都允许。
那么,你为什么会看到这个错误呢?
简短的回答是——这不是一个真正的错误。 这是一个假错误。
Visual Studio 有时会显示虚假错误,尤其是当Error List 中的下拉菜单设置为Build + Intellisense(而不是Build Only)时。
我给你的建议是将下拉菜单切换为Build Only。 在我的项目中,Intellisense 给出了许多虚假错误,因此我大部分时间都将其置于Build Only 模式。
它出现在 Visual Studio 2017 和 2019 中。我没有在其他地方测试过。
【解决方案2】:
我在将十进制模型传递给视图时遇到了类似的问题。我在十进制类型后面加上可以为空的“?”运营商:
@model decimal?