Как в представлении в 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)
И так необходимо поступить с остальными хэлперами. Если классы модели написаны правильно, то автоматически подставится именно имя объекта.