如果语句未正确评估

时间:2012-11-16 18:42:17

标签: razor asp.net-mvc-4

我试图在尝试渲染HiddenFor HTML元素之前评估模型的属性以查看它是否为空,但是输入了if语句的代码块,即使该语句为false。

@{
if(Model.BoatImage.UploadedImagePath != string.Empty)
{
   @Html.HiddenFor(model => model.BoatImage.UploadedImagePath)
}
}

在上面的代码中,UploadedImagePath在BoatImage的构造函数中初始化为string.Empty。如果我在if语句中断,Intellisense显示UploadedImagePath为空,而Immediate窗口将if语句计算为false。但是,程序仍尝试渲染HiddenFor元素。

编辑:调试器错误地注意到上面的代码导致异常,而实际上是在上面的代码下面几行。一旦我纠正了引起问题的行,上面的代码就能正常工作。

1 个答案:

答案 0 :(得分:1)

在剃刀中你应该这样写:

@if(!string.IsNullOrEmpty(Model.BoatImage.UploadedImagePath))
{
   @Html.HiddenFor(model => model.BoatImage.UploadedImagePath)
}

请注意,我也更改了您的字符串评估方法