0

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

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

在上面的代码中,UploadedImagePath 在 BoatImage 的构造函数中初始化为 string.Empty。如果我在 if 语句处中断,Intellisense 会显示 UploadedImagePath 为空,并且即时窗口将 if 语句评估为假。但是,程序仍会尝试呈现 HiddenFor 元素。

编辑:调试器错误地指出上面的代码导致了异常,而实际上是上面代码下面的几行。一旦我纠正了导致问题的行,上面的代码就可以正常工作。

4

1 回答 1

1

在剃须刀中,您应该这样写:

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

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

于 2012-11-16T18:53:17.080 回答