Может предоставить пример для EditorForModel с его параметрами?

Прежде чем отправлять этот вопрос, я использовал google для редактора ForModel, используя его параметры.

Я читал Почему бы не использовать Html.EditorForModel() и этот blog.

Я не нашел связанных статей с моими потребностями.

Может предоставить мне пример с EditorForModel с параметрами?

Спасибо вам

Ответ 1

Есть 6 перегрузок этого помощника:

  • @Html.EditorForModel()

    Отображает шаблон ~/Views/Shared/EditorTemplates/TypeName.cshtml, где TypeName - это точное имя типа вашей модели представления. Если ваша модель представления представляет собой коллекцию (т.е. IEnumerable<TypeName>, IList<TypeName>, TypeName[],...), ASP.NET MVC автоматически отобразит соответствующий шаблон редактора для каждого элемента коллекции. Вам не нужно писать какие-либо петли в ваших представлениях, чтобы это произошло. Он обрабатывается каркасом для вас.

  • @Html.EditorForModel("templatename")

    Renders ~/Views/Shared/EditorTemplates/templatename.cshtml вместо того, чтобы полагаться на соглашение

  • @Html.EditorForModel(new { Foo = "bar" })

    Отображает шаблон редактора по умолчанию, но передает ему дополнительные данные, которые можно использовать внутри с помощью ViewData["foo"] или ViewBag.Foo

  • @Html.EditorForModel("templatename", new { Foo = "bar" })

    Renders ~/Views/Shared/EditorTemplates/templatename.cshtml вместо того, чтобы полагаться на соглашение и передает дополнительные данные представления, которые вы могли бы использовать внутри с помощью ViewData["foo"] или ViewBag.Foo

  • @Html.EditorForModel("templatename", "fieldprefix")

    Renders ~/Views/Shared/EditorTemplates/templatename.cshtml вместо того, чтобы полагаться на соглашение и изменяет навигационный контекст внутри этого шаблона, что означает, что, например, если у вас был вызов @Html.TextBoxFor(x => x.FooBar) внутри этого шаблона, вы получите name="fieldprefix.FooBar" вместо name="FooBar"

  • @Html.EditorForModel("templatename", "fieldprefix", new { Foo = "bar" })

    Renders ~/Views/Shared/EditorTemplates/templatename.cshtml вместо того, чтобы полагаться на соглашение и изменяет навигационный контекст внутри этого шаблона, что означает, что, например, если у вас был вызов @Html.TextBoxFor(x => x.FooBar) внутри этого шаблона, вы получите name="fieldprefix.FooBar" вместо name="FooBar". Он также передает дополнительные данные просмотра, которые можно использовать внутри с помощью ViewData["foo"] или ViewBag.Foo

Примечание. Система шаблонов будет сначала искать шаблоны в ~/Views/XXX/EditorTemplates, где XXX - это имя контроллера, который служил этому представлению, и если он не найдет, он будет смотреть в ~/Views/Shared/EditorTemplates. Это может привести к более тонкой настройке шаблонов. У вас могут быть шаблоны по умолчанию в общей папке, которые могут быть переопределены для каждого контроллера.