在视图中允许可空模型

Allow Nullable Model in Views

当使用 struct/enum 或任何其他 时,编译器 似乎 显示错误输入我的 MVC 模型。

CS0037 Cannot convert null to 'MyEnum' because it is a non-nullable value type

我创建了一个新的 MVC 项目(在 VS 2019 中),创建了一个枚举

public enum MyEnum
{
    One,
    Two,
    Three
}

并将其作为模型放在 "About" 视图中:

为什么会这样?

The compiler appears to show a error when using a struct / value type as my MVC Model.

根据 this link,模型肯定可以是 classstruct。有利有弊,但都都允许.

那么,您为什么会看到此错误? 简短的回答是——这不是真正的错误。 这是一个假错误

Visual Studio 有时会显示虚假错误,尤其是当 Error List 中的下拉列表设置为 Build + Intellisense(而不是 Build Only)时。

我对您的建议是将下拉列表切换为 Build Only在我的项目中,Intellisense 给出了一些假错误,因此我大部分时间都将其置于 Build Only 模式。

发生在Visual Studio2017年和2019年,其他地方没测试过

我在将十进制模型传递给视图时遇到了类似的问题。我在十进制类型后缀可以为 nullable '?'运算符:

@model decimal?