繁体   English   中英

如何从ID获取名字

[英]How to get name from id

大家好,我对此有点挣扎,想知道是否有人可以伸出援手。 我有以下观点:

@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返回给用户不是很友好。 我们将状态名称存储在状态对象中。 但是,如何获取与每个电话号码记录关联的StatusID的名称?

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

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

也就是说,您的选择是:

  • 向模型添加另一个表示状态名称的字段
  • 将状态表扔到视图包中,然后视图将其弄清楚( @ViewBag.Statuses.Single(w=>w.Id==Model.StatusID).Name
  • 停止使用ID :)

您应该具有状态表关系(我假设与此相关),在这种情况下,您需要进行查询

.Include("Statuses") 

除非是枚举,否则为Status表,在这种情况下,请阅读EF 4.1中的枚举支持

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

如果您有一个状态表,但没有定义关系,那么现在该做一下了:)

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

string StatusName;
//or
Status Status;

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

然后,在您的视图中,您只需调用所需的属性即可。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM