У меня есть модель с перечисленными свойствами, как показано ниже:описания дисплея перечислений внутри просмотров бритвенных
namespace ProjectManager.Models
{
public class Contract
{
.....
public enum ContractStatus
{
[System.ComponentModel.Description("جديد")]
New,
[System.ComponentModel.Description("در انتظار پرداخت")]
WaitForPayment,
[System.ComponentModel.Description("پرداخت شده")]
Paid,
[System.ComponentModel.Description("خاتمه يافته")]
Finished
};
public ContractStatus Status { get; set; }
.....
}
}
Внутри моих взглядов бритвы, я хочу, чтобы отобразить описание перечислений для каждого элемента, например, جديد
вместо New
. Я пытался следовать инструкциям в this answer, но я не знаю, где добавить метод расширения и как вызвать метод расширения внутри моего файла просмотра бритвы. Я был бы благодарен, если кто-то может выполнить мой код:
@model IEnumerable<ProjectManager.Models.Contract>
....
<table class="table">
<tr>
.....
<th>@Html.DisplayNameFor(model => model.Status)</th>
.....
</tr>
@foreach (var item in Model) {
<tr>
......
<td>
@Html.DisplayFor(modelItem => item.Status) //<---what should i write here?
</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>
}
Вы можете поместить метод расширения в любом месте (в вашей текущей сборке или другой сборке или отдельной dll). И вы просто используете его как '
@StephenMuecke Я добавил метод DisplayName в открытый статический класс' Utils', который делает метод, доступный как «Utils.DisplayName» внутри моего проекта после добавления 'using ProjectManager.App_Start;' однако он не разрешен в '@ item.Status.DisplayName()'. Что мне теперь делать? – VSB
Какие ошибки вы получаете? –