在视图中允许可空模型
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,模型肯定可以是 或 class
或 struct
。有利有弊,但都都允许.
那么,您为什么会看到此错误?
简短的回答是——这不是真正的错误。 这是一个假错误。
Visual Studio 有时会显示虚假错误,尤其是当 Error List
中的下拉列表设置为 Build + Intellisense
(而不是 Build Only
)时。
我对您的建议是将下拉列表切换为 Build Only
。 在我的项目中,Intellisense 给出了一些假错误,因此我大部分时间都将其置于 Build Only
模式。
发生在Visual Studio2017年和2019年,其他地方没测试过
我在将十进制模型传递给视图时遇到了类似的问题。我在十进制类型后缀可以为 nullable '?'运算符:
@model decimal?
当使用 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,模型肯定可以是 或 class
或 struct
。有利有弊,但都都允许.
那么,您为什么会看到此错误? 简短的回答是——这不是真正的错误。 这是一个假错误。
Visual Studio 有时会显示虚假错误,尤其是当 Error List
中的下拉列表设置为 Build + Intellisense
(而不是 Build Only
)时。
我对您的建议是将下拉列表切换为 Build Only
。 在我的项目中,Intellisense 给出了一些假错误,因此我大部分时间都将其置于 Build Only
模式。
发生在Visual Studio2017年和2019年,其他地方没测试过
我在将十进制模型传递给视图时遇到了类似的问题。我在十进制类型后缀可以为 nullable '?'运算符:
@model decimal?