Ответ 1
Я бы использовал вспомогательную подпись, которая берет HTML-атрибуты и присваивает ей класс CSS. Затем вы бы использовали CSS для достижения желаемого внешнего вида.
<%= Html.TextBox( "state", null, new { @class = "small-input" } ) %>
как изменить ширину текстового поля в представлении asp.net-mvc View
Я хочу иметь эти поля рядом друг с другом, а текстовое поле состояния намного короче
<p>
<label for="city">City:</label>
<%= Html.TextBox("city")%>
<label for="state">State:</label>
<%= Html.TextBox("state")%>
</p>
EDIT:
Ни один из нижеприведенных ответов не работает для меня. Я заметил, что в site.css я вижу это:
fieldset p
{
margin: 2px 12px 10px 10px;
}
fieldset label
{
display: block;
}
fieldset label.inline
{
display: inline;
}
legend
{
font-size: 1.1em;
font-weight: 600;
padding: 2px 4px 8px 4px;
}
input[type="text"]
{
width: 200px;
border: 1px solid #CCC;
}
input[type="password"]
{
width: 200px;
border: 1px solid #CCC;
}
как переопределить это поведение для одного поля (текстовое поле)
Я бы использовал вспомогательную подпись, которая берет HTML-атрибуты и присваивает ей класс CSS. Затем вы бы использовали CSS для достижения желаемого внешнего вида.
<%= Html.TextBox( "state", null, new { @class = "small-input" } ) %>
<%= Html.TextBox("state", null, new { @style = "width: 300px;" })%>
CSS
.yourcssclassname{width:50px;}
HTML
<%= Html.TextBox("city", null, new{@class="yourcssclassname"})%>
который должен это сделать... вы также могли бы явно отправить атрибут стиля, но классы css - лучший путь для выбора.
string.Empty представляет значение по умолчанию.
Изменить: см. сообщение tvanfosson
фиксированный ответ, поэтому он решает проблемы, упомянутые в комментариях.
Вы можете использовать помощник TextBox, чтобы добавить любые произвольные атрибуты в текстовое поле. Например:
<%= Html.TextBox( "state", null, new { size = "10" } ) %>
Будет выглядеть примерно так:
<input type="text" name="state" size="10" />
Если используется шаблон MVC по умолчанию, который поставляется с VS. Очевидно, что указание класса в атрибутах html текстового поля, похоже, не отменяет Site.css, однако встроенный стиль работает. Итак:
{@style= "width: 400px;"}
будет работать, тогда как это не будет:
{@class="myclass"}