MVC3 - 模型设置为null但仍然进入IF语句

时间:2012-06-18 14:48:52

标签: asp.net-mvc asp.net-mvc-3 if-statement model

我有一个Model(BusinessPlaceDetailsViewModel),里面有另一个Model(Hub)。

但是,如果我将Hub设置为null,它仍会进入我的IF状态,请参见此处:

enter image description here

我尝试了很多不同的组合,例如将每个IF语句放在自己的大括号内。

为什么进入If块?

4 个答案:

答案 0 :(得分:0)

我认为控制器没有将模型传递给视图是一个问题。

如果您发布控制器代码,它可能会有所帮助。

答案 1 :(得分:0)

出于好奇,您可以尝试一下,看看h1是否显示?

@if (!User.Identity.IsAuthenticated) 
{
    if (Model.Hub == null)
    {
        <h1>wtf shouldn't have gotten here</h1>
    }
    else
    {
        ...
    }
}

答案 2 :(得分:0)

您可以先在控制器中处理您的支票吗?如果不是,可以尝试.Any()与凌。

 @using System.Linq


 @if( !Model.Any() )
 {
     ...
 }
 else

答案 3 :(得分:0)

我通过在BusinessPlaceDetailsViewModel

中使用以下内容解决了这个问题
public BusinessPlaceDetailsViewModel()
{
   Hub = new HubViewModel();
}