Как в представлении в asp.net.mvc вместо id получить наименование полей

Прошу помочь в следующей проблеме, пытаюсь создать представление для метода

public ActionResult RequestProcessing()
    {
        return View(db.RequestProcessings.ToList());
    }

Есть класс RequestProcessing

public class RequestProcessing
{
    public int Id { get; set; }
    [Display(Name = "Дата поступления")]
    [Required]
    public DateTime Date { get; set; }
    [Display(Name = "Комментарий")]
    public string Comment { get; set; }
    [Display(Name = "Выполнить до")]
    [Required]
    public DateTime DeadLine { get; set; }

    [Display(Name = "Идентификатор заявки")]
    [Required]
    public int RequestId { get; set; }
    public Request Request { get; set; }
    [Display(Name = "Фамилия специалиста")]
    public int? SpecialistId { get; set; }
    public Specialist Specialist { get; set; }
    [Display(Name = "Статус заявки")]
    public int? StatusId { get; set; }
    public Status Status { get; set; }
    [Display(Name = "Тип заявки")]
    public int? TypeId { get; set; }
    [ForeignKey ("TypeId")]
    public RequestType RequestType { get; set; }
}

И связанные с ним классы "Request", "Specialist", "Status", "RequestType". Создаю следующее представление

<p>
    @Html.ActionLink("Create New", "Create")
</p>

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.RequestId)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Date)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Comment)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.DeadLine)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.SpecialistId)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.StatusId)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.TypeId)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.RequestId)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Date)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Comment)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DeadLine)
        </td>
        <td>
           @Html.DisplayFor(modelItem => item.SpecialistId)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.StatusId)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.TypeId)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

</table>

Подскажите как мне вместо ID для "Request", "Specialist", "Status", "RequestType" получить соответствующие им названия полей.


Ответы (1 шт):

Автор решения: Дмитрий

Просто замените:

@Html.DisplayFor(modelItem => item.RequestId)

на:

@Html.DisplayFor(modelItem => item.Request)

И так необходимо поступить с остальными хэлперами. Если классы модели написаны правильно, то автоматически подставится именно имя объекта.

→ Ссылка