如何从id获取名称

时间:2011-08-30 16:01:47

标签: c# model-view-controller asp.net-mvc-3 entity-framework-4 entity-framework-4.1

嗨,我正在努力解决这个问题,并想知道是否有人可以伸出援助之手。我有以下观点:

@model IEnumerable<TelephoneNumber.Models.Number>

<table>
    <tr>
        <th>
            Number
        </th>
        <th>
            Status
        </th>
    </tr>

    @foreach (var item in Model) {
    <tr>
        <td>
            @item.Number1   
        </td>
        <td>
            @item.StatusID  
        </td>
    </tr>
}
</table>

这一切都很好,但是将StatusID返回给用户并不是很友好。我们将状态名称存储在Status对象中。但是,如何获取与每个电话号码记录关联的StatusID的名称?

4 个答案:

答案 0 :(得分:1)

@item.Status.StatusName;假设您在Telephone StatusIdStatus StatusId之间有父子关系。

答案 1 :(得分:0)

就我个人而言,我认为您不应该像这样公开ID,您应该在创建模型之前将它们转换为有意义的表达式(即,加入表并将状态名称而不是状态ID写入模型)。

那就是说,你的选择是:

  • 将另一个字段添加到代表状态名称
  • 的模型中
  • 将状态表投放到视图包并让视图计算出来(@ViewBag.Statuses.Single(w=>w.Id==Model.StatusID).Name
  • 停止使用ID:)

答案 2 :(得分:0)

你应该有一个状态表关系我假设与此相关,在这种情况下你需要进行查询

.Include("Statuses") 

状态表,除非这是枚举,在这种情况下请阅读EF 4.1中的枚举支持

http://blog.bennymichielsen.be/2011/05/21/entity-framework-4-1-supporting-enums/

如果你有一个状态表,但没有定义关系,现在是时候了:)

答案 3 :(得分:0)

您的Models.Number类需要保存此信息。因此,请将以下属性之一添加到此类...

string StatusName;
//or
Status Status;

然后在逻辑处理中,您需要设置此值。您可以使用已有的StatusID值来检索Status模型,并使用其值分配给Number类。

然后在你看来你只需要打电话给你想要的房产..

@item.StatusName
//or
@item.Status.Name