如果声明在视图内部不起作用

时间:2013-10-14 19:43:24

标签: vb.net asp.net-mvc-3 razor if-statement

我的剃刀视图中有if语句不起作用,我无法弄清楚原因:

@If Html.DisplayFor(Function(m) CDate(m.PS.DateStart).Month) Is "" Then
                @<p></p>
Else
                @<p>@Html.DisplayFor(Function(m) CDate(m.PS.DateStart).Month)/@Html.DisplayFor(Function(m) CDate(m.PS.DateStart).Day)/@Html.DisplayFor(Function(m) CDate(m.PS.DateStart).Year)</p>
End If

无论@IF语句返回ELSE语句,我可以从Debug中判断出什么。我试过像这样设置语句

@If Html.DisplayFor(Function(m) CDate(m.PS.DateStart).Month) Is Nothing Then

但它仍会返回ELSE语句。

我也试过if语句类似于

@If IsNothing(Model.PS.DateStart) Then
  @<p></p>
Else
  @<p>@Html.DisplayFor(Function(m) m.PS.DateStart)</p>  
End If

我收到一个错误:对象引用未设置为对象的实例。因为还没有传递给我的模型。

1 个答案:

答案 0 :(得分:0)

灵感来自@Nick的评论是解决方案:

@If Html.DisplayFor(Function(m) m.PS.DateStart).ToString = "" Then
 @<p></p>
Else
 @<p>@Html.DisplayFor(Function(m) CDate(m.PS.DateStart).Month)/@Html.DisplayFor(Function(m) CDate(m.PS.DateStart).Day)/@Html.DisplayFor(Function(m) CDate(m.PS.DateStart).Year)</p>
End If