Ответ 1
Вместо EditorFor используйте TextBoxFor:
<%=Html.TextBoxFor(m => m.Name, new {style = "width:50px"})%>
Могу ли я установить ширину элемента управления EditorFor в моем представлении?
Я установил несколько параметров:
[Required, DisplayName("Payee Name"), StringLength(50)]
public string Name { get; set; }
Тем не менее, я не могу установить ширину текстового поля, которое будет отображаться.
<table width="300" border="0" cellpadding="3" cellspacing="0">
<tr>
<td>
<%=Html.LabelFor(m => m.Name)%>
</td>
<td>
<%=Html.EditorFor(m => m.Name)%>
</td>
</tr>
Можно ли это как-то сделать?
Я старался:
<%=Html.EditorFor(m => m.Name, new {width=50)%>
Но нет радости...
Вместо EditorFor используйте TextBoxFor:
<%=Html.TextBoxFor(m => m.Name, new {style = "width:50px"})%>
Что не так с использованием CSS для стилизации вашей ширины управления?
В mvc 5 есть установка в site.css, которая устанавливает max-width = 200 для всех текстовых областей. Это смутило меня, пока я не нашел этот блог-блог. http://weblogs.asp.net/paullitwin/visual-studio-2013-asp-net-mvc-5-scaffolded-controls-and-bootstrap как говорит Пол Литвин:
Да, Microsoft по какой-то причине устанавливает максимальную ширину всех input, select и textarea до 280 пикселей. Не уверен, что мотивация этого, но пока вы не измените это или не переопределите это назначая элементы управления формы другому классу CSS, ваши элементы управления никогда не сможет быть более широким, чем 280px.
/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea {
max-width: 280px;
}
Итак, если вы прагматичны, вы меняете максимальную ширину, например, 600px
Замените <%=Html.EditorFor(m => m.Name, new {width=50)%>
для этого
<%=Html.EditorFor(m => m.Name,new { htmlAttributes = new { style = "width: 50px" }, }
Вам может потребоваться добавить "! important" в атрибут css, чтобы гарантировать, что он переопределяет значение по умолчанию для TextBoxFor, например. ширина: 50px! important;
С BootStrap 3
@Html.EditorFor(model => model.PriceIndicatorDesc, new { htmlAttributes = new { @class = "form-control", @style = "width:280px" } })
Как упоминалось ранее, место, которое вы хотите посетить, находится в site.css
input,
select,
textarea {
max-width: 280px;
}
Вы можете установить любое значение по умолчанию, которое вы хотите, или удалить блок, чтобы получить значение Bootstrap по умолчанию 100%. Лично я добавил следующие параметры, чтобы я мог легко внести некоторые изменения в зависимости от элемента управления и поля:
.form-control-25 {
max-width: 25%;
}
.form-control-50 {
max-width: 50%;
}
.form-control-75 {
max-width: 75%;
}
.form-control-100 {
max-width: 100%;
}
Если вам нужна пользовательская ширина вне обычного правила CSS, и вы используете Шаблоны редактора, вы можете сделать
<%=Html.EditorFor(m => m.Name, new { Width = 50})%>
Затем в вашем шаблоне редактора для String добавьте это в свой шаблон
@Html.TextBox(s => {
...
if (ViewBag.Width != null )
{
s.Width = ViewBag.Width;
}
}).Bind(Model).GetHtml()
Патрик Линдстрем прав с максимальной шириной.
Мне удалось обойти это, установив максимальную ширину и ширину
@Html.EditorFor(model => model.Source, new { htmlAttributes = new { @class = "form-control", @placeholder = "Source", @style = "width: 900px;max-width: 900px;" } })
В вашем CSS файле для Site.css максимальная ширина по умолчанию равна 280px, если у вас VS автоматически генерировал все для вас, когда вы впервые создавали проект MVC. Независимо от того, насколько большой ширины вы устанавливаете свой @html.editorfor
с заданным идентификатором, он ограничен приведенным ниже синтаксисом.
input,
select,
textarea{
max-width:280px
}
Вы можете изменить его здесь, задав ему новую максимальную ширину или максимальную высоту.
Для ASP.NET Core:
<%=Html.TextBoxFor(m => m.Name, new { htmlAttributes = new { style = "width: 50px" } })%>
Выше ответ Да и Нет. Нам нужно использовать инструмент разработки, чтобы проверить, какие стили используются и модифицируют, они могут иметь максимальную ширину, ширину; Затем создайте собственный важный CSS, чтобы применить его, мой случай:
<style>
textarea,
input[type='text'],
.form-group,
.form-group-lg,
.form-horizontal,
.form-control,
.text-box,
.single-line,
.multi-line{
width: 800px !important;
max-width: 1000px !important;
}
.multi-line{
height: 300px !important;
}
.form-horizontal{
position:absolute;
padding-left:15%;
}
</style>
см. результат прикрепленного изображения.