解释这个奇怪的Razor可以自由的bool行为

时间:2015-07-07 01:35:54

标签: c# asp.net-mvc asp.net-mvc-4 razor

最近在.Net的Razor引擎中遇到了这种奇怪的行为。

我们在ViewModel中有一个属性,如

bool? Property1 { get; set; }

但如果我们在if语句中有

@if(Model.Property1.HasValue)

我们得到一个bool没有Method HasValue错误。但以下作品

@{
 var prop1 = Model.Property1;
}
@if(prop1 != null)

有人可以解释WTF正在发生,因为我希望HasValue能够在第一个场景中工作。在评估表达式之后,应该将其转换为布尔值,而不是之前的表达式。

0 个答案:

没有答案