1) Нельзя использовать существующий EditorFor()
для указания дополнительных HTML-параметров. Параметр, который вы используете в своем примере, предназначен для дополнительных данных представления, а не для атрибутов HTML. EditorFor()
создаст свои собственные атрибуты HTML.
В качестве альтернативы вы можете использовать TextBoxFor()
вместо этого и использовать параметр htmlAttributes
:
@Html.TextBoxFor(m => m.UserName, new { @class = "ui-widget ui-state-default ui-widget-content" })
2) Шаблон EditorFor()
можно переопределить с помощью шаблона редактора. Эта ссылка демонстрирует, как.
По сути, для создания EditorTemplate вам потребуется создать папку с именем
EditorTemplates
в папке Views. Имя папки должно быть точным, и местоположение папки является релевантным. Если папка EditorTemplates находится, например, в папке Views / Account (если это существовало, скажем), тогда шаблон будет доступен только для соответствующих представлений учетной записи. Если вы поместите его в общую папку, он будет доступен для всех представлений.
В папке EditorTemplates вы должны создать частичное представление с именем в соответствии с типом данных, который должен быть обработан. Например, я предполагаю, что вы хотите, чтобы строки обрабатывались только с EditorFor, поэтому я назвал его String.cshtml
.
Тогда в частичном представлении я определил следующее:
@inherits System.Web.Mvc.WebViewPage<string>
@Html.TextBoxFor(m => m, new { @class = "ui-widget ui-state-default ui-widget-content" })
И это все. Везде, где EditorFor теперь обрабатывает строку, вы должны получить что-то вроде:
<input class="ui-widget ui-state-default ui-widget-content" data-val="true" data-val-required="The User name field is required." id="UserName" name="UserName" type="text" value="" />
3) В идеале вы должны задать только один вопрос в вопросе переполнения стека, и простой поиск в Google должен ответить на этот вопрос. Однако вот определения ui-state-default и ui-widget-content :
.ui-state-default: класс, применяемый к кнопкам, похожим на кнопки
элементы. Применяет стили элемента «кликабельный по умолчанию» к элементу
и его дочерний текст, ссылки и значки.
.ui-widget-content: Класс, применяемый к контейнерам содержимого. относится
стили контейнера содержимого для элемента и его дочернего текста, ссылок и
иконки. (может применяться к родителю или родному элементу заголовка)
Надеюсь, это поможет.