Я намагаюся додати атрибут html для EditorFor
@Html.EditorFor(model => model.UserName, new { style = "width: 100px" })
Але будь-яким способом я отримую
<input id="UserName" class="text-box single-line" type="text" value="" name="UserName">
Відповіді:
16 за відповідь № 1EditorFor збирається перезаписати ці атрибути. Подивитися Атрибути Html для EditorFor () в ASP.NET MVC для обхідних шляхів.
Якщо все, що потрібно змінити, є відображення ширини, і ви не покладаєтеся на будь-який Шаблон редактора, то найпростішим виправленням є використання TextBoxFor
@Html.TextBoxFor(model => model.UserName, new { style = "width: 100px" })
7 для відповіді № 2
У мене була та ж проблема, і це вирішило її ...
<style type="text/css">
#UserName {
width: 100px;
}
</style>
@Html.EditorFor(model => model.UserName)
2 для відповіді № 3
@Html.EditorFor()
Динамічно визначає тип керування, що використовується на основі елемента моделі.
Ці налаштування працюють з @Html.LabelFor()
від @Html.TextBoxFor()
. Наступний код був тести і працює належним чином.
Бритва:
@Html.LabelFor(model => model.UserName, null, new { style = "display: inline;" })
@Html.TextBoxFor(model => model.UserName, null, new { style = "display: inline;" })
Згенерований HTML
<label style="display: inline;" for="UserName">
<input name="LastActivityDate" id="UserName" style="display: inline;" type="text" value=""/>
Зверніть увагу, що другий аргумент - це null
, стиль - третій атрибут. якщо використовується @Html.EditorFor()
є обов'язковим, тоді ви повинні використовувати клас CSS замість стилю
@Html.EditorFor()
на MSDN
Примітка: Код був протестований з MVC4 і, сподіваюся, він дійсний і для MVC3
1 для відповіді № 4
Замість того, щоб використовувати
@ Html.EditorFor (модель => model.UserId)
Використовуйте
@ Html.TextBoxFor (модель => model.UserId, нова {@Value = "Prabhat"})
0 для відповіді № 5
Для чого це коштує я мав цю ж проблему. Я вирішив це, використовуючи дещо іншу версію рішення Narenda V.
Я створив такий клас: (примітка - мін-ширина замість ширини)
.userName { min-width:40em; }
тоді на мій погляд:
@Html.EditorFor(model => model.UserName, new { @class = "userName" })
Коли я не використовував міні-ширину, а ширину, він не працював. Боб
0 для відповіді № 6
Якщо вам потрібно використовувати EditorFor, а не TextBoxForі мати кілька редакторів на сторінці, але тільки потрібно змінити ширину конкретних ... Найпростіше, що додати стиль CSS в ID класу як такий:
<style type="text/css">
input#UserName { width: 100px; }
</style>
-2 для відповіді № 7
Ви можете створити клас стилів у форматі .css
.userName
{
width: 150px;
}
Стиль може бути доповнений атрибутом html class.
@Html.EditorFor(model => model.UserName, new { @class = "userName" })