2016-12-26 2 views
1

Я хочу заменить html-помощники помощниками тегов в View.Замена html-помощников с помощью тегов-помощников

Для этого я заменяющего: @model IEnumerable<Person>

по @model IList<Person>

и @Html.DisplayNameFor(model => model.Name)

по <label asp-for="@Model[0].Name"></label>

но то, что я должен использовать вместо: @Html.DisplayFor(modelItem => item.Name)?

<input asp-for="@item.Name" readonly />?

Это не выглядит правильным.

UPDATE: Просто чтобы прояснить вопрос: @Html.DisplayNameFor и <label asp-for как генерировать метки в HTML.

@Html.DisplayFor генерирует только текст. Какой помощник тега может заменить его? Я не хочу использовать input только для отображения текста.

ответ

0

Когда вы используете IList, вы можете получить доступ к собственности в обоих направлениях.

@model IList<WebApp.Models.Person> 

<input type="text" asp-for="@Model[0].Name" /> 

@foreach(var item in Model) 
{ 
    <input type="text" asp-for="@item.Name" readonly/> 

} 

и если вы использовали IEnumerable, вам нужно вызвать метод ToList для доступа к свойствам без использования foreach

@model IList<WebApp.Models.Person> 
@{ 
var model2 = Model.ToList(); 
} 

<input type="text" asp-for="@model2[0].Name" /> 

@foreach(var item in Model) 
{ 
    <input type="text" asp-for="@item.Name" readonly/> 
} 
+0

вопроса: Я должен использовать вход только для просмотра информации? он генерирует текстовое поле в html. – Alexan

+0

Мне нужен тот же результат, что и @ Html.DisplayFor, но с помощью тэга helper. – Alexan

+0

Для отображения информации вы можете использовать теги HTML с бритвой, как это. '

    @foreach (вар элемент в модели) {
  • @ item.Name
  • }
' – Ahmar

Смежные вопросы