Как получить имя из идентификатора - PullRequest
0 голосов
/ 30 августа 2011

Привет всем, я немного борюсь с этим и задаюсь вопросом, может ли кто-нибудь помочь. У меня есть следующий вид:

@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 в объекте Status. Однако как я могу получить имя для StatusID, связанного с каждой записью номера телефона?

Ответы [ 4 ]

1 голос
/ 30 августа 2011

Как насчет @item.Status.StatusName; при условии, что у вас есть отношения между родителями и детьми между Telephone StatusId и Status StatusId.

0 голосов
/ 30 августа 2011

У вас должна быть связь с таблицей состояния. Я предполагаю, что она связана с этим, и в этом случае вам нужно будет сделать запрос

.Include("Statuses") 

Таблица состояния, если это не перечисление, в этом случае читайте о поддержке перечисления в EF 4.1

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

Если у вас есть таблица состояния, но у вас нет определенных отношений, сейчас самое время сделать это:)

0 голосов
/ 30 августа 2011

Ваш класс Models.Number должен содержать эту информацию.Так что добавьте одно из следующих свойств к этому классу ...

string StatusName;
//or
Status Status;

Тогда в вашей логической обработке вам нужно установить это значение.Вы можете использовать значение StatusID, которое у вас уже есть, чтобы извлечь модель Status и использовать ее значения для присвоения классу Number.

Затем в своем представлении вы просто вызываете нужное свойство.

0 голосов
/ 30 августа 2011

Лично я думаю, что вы не должны показывать идентификаторы таким образом, вы должны преобразовать их в осмысленные выражения перед созданием вашей модели (т. Е. Присоединиться к таблицам и написать имя статуса вместо идентификатора статуса для вашей модели).

Тем не менее, вы можете выбрать:

  • добавить еще одно поле в модель, представляющее имя статуса
  • , бросить таблицу состояния в сумку вида и позволить представлению понять ееout (@ViewBag.Statuses.Single(w=>w.Id==Model.StatusID).Name)
  • прекратить использование идентификаторов:)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...