Как установить ширину HTMLB Helper TextBox в ASP.NET MVC? - PullRequest
46 голосов
/ 28 ноября 2008

Некоторые примеры, которые я обнаружил, которые, по-видимому, работали с более старыми версиями mvc, предполагают наличие некоторого параметра длины:

<%=Html.TextBox("test", 50)%>

Но это, возможно, ошибочно устанавливало значение.

Как это работает в текущей версии? Передача в стиле не оказывает никакого влияния.

Ответы [ 8 ]

65 голосов
/ 23 января 2010

Оригинальный ответ больше не работает как написано:

<%=Html.TextBox("test", new { style="width:50px" })%> 

получит текстовое поле с "{style =" width: 50px "}" в качестве текстового содержимого.

Чтобы настроить это для текущей версии MVC 1.0, используйте следующий скрипт (обратите внимание на добавление второго параметра - у меня мой, начиная с пустого, настройте соответственно в зависимости от ваших потребностей):

<%=Html.TextBox("test", "", new { style="width:50px" })%> 
41 голосов
/ 28 ноября 2008

Для этого вы должны использовать HtmlAttributes , но есть ловушка: HtmlAttributes и класс CSS .

Вы можете определить это так:

new { Attrubute="Value", AttributeTwo = IntegerValue, @class="className" };

и вот более реалистичный пример:

new { style="width:50px" };
new { style="width:50px", maxsize = 50 };
new {size=30, @class="required"}

и, наконец, в:

MVC 1

<%= Html.TextBox("test", new { style="width:50px" }) %> 

MVC 2

<%= Html.TextBox("test", null, new { style="width:50px" }) %> 

MVC 3

@Html.TextBox("test", null, new { style="width:50px" })
6 голосов
/ 28 ноября 2008

Примерно так должно работать:

<%=Html.TextBox("test", new { style="width:50px" })%>

Или лучше:

<%=Html.TextBox("test")%>

<style type="text/css">
    input[type="text"] { width:50px; }     
</style>
2 голосов
/ 05 октября 2010

Я настоятельно рекомендую собрать ваши HtmlHelpers. Я думаю, что код APSX будет более читабельным, надежным и долговечным.

Перейдите по ссылке; http://msdn.microsoft.com/en-us/library/system.web.mvc.htmlhelper.aspx

1 голос
/ 13 апреля 2011

Мой реальный образец для MVC 3 здесь:

<% using (Html.BeginForm()) { %>

<p>

Start Date: <%: Html.TextBox("datepicker1", DateTime.Now.ToString("MM/dd/yyyy"), new { style = "width:80px;", maxlength = 10 })%> 

End Date: <%: Html.TextBox("datepicker2", DateTime.Now.ToString("MM/dd/yyyy"), new { style = "width:80px;", maxlength = 10 })%> 

<input type="submit" name="btnSubmit" value="Search" /> 

</p>

<% } %>

Итак, мы имеем следующее

"datepicker1" - идентификатор элемента управления

DateTime.Now.ToString ("MM / dd / yyyy" ) - значение по умолчанию

style = "width: 80px; " - ширина текстового поля

maxlength = 10 - мы можем ввести только 10 символов

1 голос
/ 28 ноября 2008

Не используйте параметр длины, так как он не будет работать со всеми браузерами. Лучший способ - установить стиль для тега ввода.

<input style="width:100px" />
0 голосов
/ 07 января 2013

Установить текстовое поле с и maxlength в mvc3.0

@Html.TextBoxFor(model => model.SearchUrl, new { style = "width:650px;",maxlength = 250 }) 
0 голосов
/ 15 ноября 2009

new {style = "width: 50px", maxsize = 50};

должно быть

new {style = "width: 50px", maxlength = 50};

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...