对象引用未在显示位置时设置为对象

时间:2013-05-22 11:55:03

标签: html5 asp.net-mvc-2 view null

我的网站中有“地点”列。在数据库中有单独的表,

国家 州 市 区域

这些所有表id都存储在Locations表中,然后Location Table Id被引用到candidatedetails中的LocationId。

我的问题是,我想显示候选人存储的位置。

例如:

地点:城市,这样的国家。如果locationId为null,则表示显示

“对象引用未设置为对象”

所以我使用如下代码,

<strong>Present Location:</strong>
        <%if (Model.LocationId.HasValue)
          { %>
            <%:Model.GetLocation(Model.LocationId.Value).City.Name%><%:","%><%:Model.GetLocation(Model.LocationId.Value).Country.Name%>
        <%} else { %>
                <%:Model.LocationId == null ? "" : Model.GetLocation(Model.LocationId.Value).City.Name%><%:","%><%:Model.GetLocation(Model.LocationId.Value).Country.Name%>
        <%} %>

在存储库中:

public Location GetLocation(int locationId)
    {
        return _db.Locations.SingleOrDefault(l=>l.Id==locationId);
    }

但我仍然对上述代码有误...有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

如果找不到匹配项,

SingleOrDefault将为类返回“{1}}”默认值,因此即使检查null也是非法的,因为LocationId将是结果,{{ 1}} - 因此,您需要对模型进行空检查。如果它是某些东西而不是没有那么它就是一个位置实例。