Razor If语句的计算不正确

Razor If语句的计算不正确,razor,asp.net-mvc-4,Razor,Asp.net Mvc 4,在尝试呈现HiddenFor HTML元素之前,我尝试评估模型的属性,以查看它是否为空,但即使该语句为false,也会输入if语句的代码块 @{ if(Model.BoatImage.UploadedImagePath != string.Empty) { @Html.HiddenFor(model => model.BoatImage.UploadedImagePath) } } 在上面的代码中,在BoatImage的构造函数中,UploadedImagePath被初始化为str

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

@{
if(Model.BoatImage.UploadedImagePath != string.Empty)
{
   @Html.HiddenFor(model => model.BoatImage.UploadedImagePath)
}
}
在上面的代码中,在BoatImage的构造函数中,UploadedImagePath被初始化为string.Empty。如果在If语句处中断,Intellisense将显示UploadedImagePath为空,并且立即窗口将If语句计算为false。但是,程序仍然尝试呈现HiddenFor元素


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

在razor中,您应该这样写:

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

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

切勿以这种方式检查空字符串。请改用string.IsNullOrEmpty()。你说的“程序仍试图呈现HiddenFor”是什么意思?呈现的html是什么样子的?谢谢你的回复。但是,在更改代码之后,if语句的计算结果仍然不正确。那么肯定还有其他错误。Post请在断开UploadedImagePath值时发布该值的屏幕截图。