如何在ASP.NET MVC中设置HTML Helper TextBox的宽度?

Jed*_*dja 47 asp.net-mvc

我发现一些显然与旧版mvc一起使用的例子表明有一个长度参数:

<%=Html.TextBox("test", 50)%>
Run Code Online (Sandbox Code Playgroud)

但这可能错误地设定了价值.

这在当前版本中如何工作?传递风格似乎没有任何影响.

Bob*_*mer 65

原来的答案不再像以前那样工作:

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

将为您提供一个文本框,其中包含"{style ="width:50px"}"作为其文本内容.

要针对当前版本的MVC 1.0调整此值,请使用以下脚本(请注意添加第二个参数 - 我将其作为空白开始,根据您的需要进行相应调整):

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

  • 是的,这是真的 (2认同)

Nik*_*tov 42

为此你必须使用HtmlAttributes,但有一个catch:HtmlAttributes和css类.

你可以像这样定义它:

new { Attrubute="Value", AttributeTwo = IntegerValue, @class="className" };
Run Code Online (Sandbox Code Playgroud)

这是一个更现实的例子:

new { style="width:50px" };
new { style="width:50px", maxsize = 50 };
new {size=30, @class="required"}
Run Code Online (Sandbox Code Playgroud)

最后是:

MVC 1

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

MVC 2

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

MVC 3

@Html.TextBox("test", null, new { style="width:50px" })
Run Code Online (Sandbox Code Playgroud)


Tim*_*ott 6

这样的事情应该有效:

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

或更好:

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

<style type="text/css">
    input[type="text"] { width:50px; }     
</style>
Run Code Online (Sandbox Code Playgroud)