C# System.InvalidOperationException必须包含ViewModel的值

C# System.InvalidOperationException必须包含ViewModel的值,c#,asp.net-mvc,C#,Asp.net Mvc,我的控制器中有: MyTestViewModel asdf = new MyTestViewModel { SomeTestDate = _b.GetSomeDate(SomeID).Value, SomeDate2 = SomeDate2.Value, SomeDate3 = SomeDate3.Value }; 在函数“GetSomeDate”中,我有: 返回x作为日期时间 我得到InvalidOperationException,当函数返回null时,对

我的控制器中有:

MyTestViewModel asdf = new MyTestViewModel 
{
    SomeTestDate = _b.GetSomeDate(SomeID).Value,
    SomeDate2 = SomeDate2.Value,
    SomeDate3 = SomeDate3.Value
    };
在函数“GetSomeDate”中,我有:

返回x作为日期时间

我得到InvalidOperationException,当函数返回null时,对象必须包含值,它应该能够返回null

这里可能出了什么问题


/M

在调用属性的getter之前,必须检查可空类型是否包含值,否则将出现异常:

var date = _b.GetSomeDate(SomeID);
MyTestViewModel asdf = new MyTestViewModel 
{
    SomeTestDate = date.HasValue ? date.Value : DateTime.MinValue,
    SomeDate2 = SomeDate2.Value,
    SomeDate3 = SomeDate3.Value
};
下面是getter的相关源代码(使用Reflector提取):

var date = _b.GetSomeDate(SomeID);
MyTestViewModel asdf = new MyTestViewModel 
{
    SomeTestDate = date.HasValue ? date.Value : DateTime.MinValue,
    SomeDate2 = SomeDate2.Value,
    SomeDate3 = SomeDate3.Value
};
public T get_Value()
{
    if (!this.HasValue)
    {
        ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_NoValue);
    }
    return this.value;
}