我有一个模型(BusinessPlaceDetailsViewModel),其中有另一个模型(集线器)。
但是,如果我将 Hub 设置为 null,它仍会进入我的 IF 条件,请参见此处:
我尝试了很多不同的组合,比如将每个 IF 语句放在自己的大括号内。
为什么它进入 If 块?
我有一个模型(BusinessPlaceDetailsViewModel),其中有另一个模型(集线器)。
但是,如果我将 Hub 设置为 null,它仍会进入我的 IF 条件,请参见此处:
我尝试了很多不同的组合,比如将每个 IF 语句放在自己的大括号内。
为什么它进入 If 块?
你能先处理你在控制器中的检查吗?如果不是,可以尝试 .Any() 和 Ling。
@using System.Linq
@if( !Model.Any() )
{
...
}
else
我敢打赌,控制器没有将模型传递给视图是一个问题。
如果您发布控制器代码,它可能会有所帮助。
我通过在 BusinessPlaceDetailsViewModel 中使用以下内容解决了这个问题
public BusinessPlaceDetailsViewModel()
{
Hub = new HubViewModel();
}
只是出于好奇,你可以试试这个,看看是否h1
显示?
@if (!User.Identity.IsAuthenticated)
{
if (Model.Hub == null)
{
<h1>wtf shouldn't have gotten here</h1>
}
else
{
...
}
}