在视图中允许可空模型

时间:2019-07-01 11:15:18

标签: c# asp.net-mvc visual-studio nullable visual-studio-2019

使用struct / enum或任何其他 value 类型作为我的MVC模型时,编译器出现来显示错误。

  

CS0037无法将null转换为“ MyEnum”,因为它是不可为null的   值类型

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

public enum MyEnum
{
    One,
    Two,
    Three
}

并将其作为模型放在“关于”视图中:

enter image description here

为什么会这样?

2 个答案:

答案 0 :(得分:2)

  

使用结构/值类型时,编译器似乎显示错误   作为我的MVC模型。

根据this link,该模型肯定可以是classstruct 。有优点和缺点,但都允许

那么,为什么您会看到此错误? 简短的答案是-这不是真正的错误。 这是伪造的错误

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

我建议您将下拉列表切换为Build Only在我的项目中,Intellisense会给出许多假错误,因此为什么我通常将其保留在Build Only模式下。

它发生在Visual Studio 2017和2019中。我没有在其他地方对其进行过测试。

答案 1 :(得分:0)

在将小数模型传递给视图时,我遇到了类似的问题。我在小数点后缀了可为空的'?'运算符:

@model decimal?