0

我的网站中有 Locations 列。在数据库中有单独的表,

国家 州 城市 地区

这些所有表 ID 都存储到 Locations 表中,然后 Location Table Id 在候选详细信息中引用 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);
    }

但是我仍然在上面的代码中遇到错误......有人可以帮助我吗?

4

1 回答 1

0

SingleOrDefaultnull当找不到匹配项时,将为类返回“默认”,因此即使检查LocationId也是非法Model的,结果也是如此,null- 因此,您需要对模型进行空检查。如果它是什么而不是什么,那么它就是一个位置实例。

于 2013-05-22T11:56:41.837 回答