Различия между Html.TextboxFor и Html.EditorFor в MVC и Razor

Почему по умолчанию они были изменены при добавлении нового «правого» представления? Какие преимущества при использовании EditorFor() и TextboxFor() ?

я нашел это

По умолчанию на вкладках «Создать» и «Редактировать леса» вместо хелпера Html.TextBoxFor используется помощник Html.EditorFor. Это улучшает поддержку метаданных в модели в виде атрибутов annotations данных, когда диалоговое окно «Добавить вид» генерирует представление.

Преимущества EditorFor том, что ваш код не привязан к . Поэтому, если вы решите что-то изменить с точки зрения того, как ваши текстовые поля визуализируются, как обертывание их в div вы можете просто написать собственный шаблон редактора ( ~/Views/Shared/EditorTemplates/string.cshtml ) и все ваши текстовые ~/Views/Shared/EditorTemplates/string.cshtml в приложении автоматически выиграет от этого изменения, тогда как если у вас есть Html.TextBoxFor вам придется изменять его везде. Вы также можете использовать Data Annotations, чтобы контролировать способ визуализации.

TextBoxFor : он будет отображать как элемент ввода текста, соответствующий указанному выражению. В простом слове он всегда будет выглядеть как входной текстовый ящик независимо от типа данных свойства, который получает привязку с элементом управления.

EditorFor : Этот контроль немного умный. Он отображает разметку HTML на основе типа данных свойства. Например, предположим, что в модели есть булево свойство. Чтобы отобразить это свойство в представлении в качестве флажка, мы можем использовать CheckBoxFor или EditorFor. Оба будут генерировать одну и ту же разметку.

В чем преимущество использования редактора?

Как известно, в зависимости от типа данных свойства он генерирует html-разметку. Поэтому предположим, что завтра, если мы изменим тип данных в модели, не нужно ничего менять в представлении. EditorFor control автоматически изменяет разметку html.

Html.TextboxFor всегда создает текстовое поле ( ).

Хотя EditorFor смотрит на тип и метаинформацию и может отображать другой элемент управления или шаблон, который вы поставляете.

Например, для свойств DateTime вы можете создать шаблон, который использует jQuery DatePicker.

Это одно из основных различий, не упомянутых в предыдущих комментариях:
Readonly будет работать с Readonly и оно не будет работать с EditorFor .

 @Html.TextBoxFor(model => model.DateSoldOn, new { @readonly = "readonly" }) 

Над кодом работает, где, как и после следующего, вы не можете контролировать только чтение .

 @Html.EditorFor(model => model.DateSoldOn, new { @readonly = "readonly" }) 

Также существует небольшая разница в выходе html для строкового типа данных.

 Html.EditorFor:  Html.TextBoxFor:  
  • Можно ли получить доступ к объекту MVC ViewBag из файла Javascript?
  • Использование Razor без MVC
  • MVC, кнопка отправки которого нажата
  • Действие Изображение MVC3 Razor
  • Я хочу понять выражение lambda в @ Html.DisplayFor (modelItem => item.FirstName)
  • Как импортировать пространство имен на странице просмотра Razor?
  • Сравнение ASP Engine MVC View Engine
  • Как реализовать пользовательский RazorViewEngine для поиска представлений в нестандартных местах?
  • Как создать текстовое поле readonly в ASP.NET MVC3 Razor
  • Предоставление частичных представлений с использованием ajax
  • Установить отключить атрибут на основе условия для Html.TextBoxFor
  • Interesting Posts

    Как очистить / очистить кеш DNS в Google Chrome?

    Загрузчик classов classов для classов в баночках, содержащих банки

    Оценка строки “3 * (4 + 2)” yield int 18

    Как использовать VPN-соединение в гостевой VMWare VM с хостом

    Как создать многого для большого количества спящего режима для дополнительного свойства из таблицы объединения?

    Утилита для управления скоростью вентилятора в Windows 7

    Используйте функцию hist () в R, чтобы получить проценты в отличие от необработанных частот

    Что такое независимые ассоциации и ассоциации с иностранными ключами?

    AltGr случайным образом перестает работать с окнами 10

    Как правильно установить и настроить JSF-библиотеки через Maven?

    Где userChrome.css?

    Java 256-битное шифрование на основе AES на основе паролей

    не удалось запустить COM-объект типа «microsoft.Office.Interop.Excel.ApplicationClass» в «microsoft.Office.Interop.Excel.Application»

    Просмотр списка привязки к элементу

    VBS: различать Windows-Explorer и Internet-Explorer

    Давайте будем гением компьютера.