如何在使用Html.TextBoxFor时设置文本框的宽度

38

我在视图中有以下代码:

<div class="editor-field">
     <%= Html.TextBoxFor(m => m.Description)%>                    
</div>

如何定义文本框的宽度?

6个回答

65

这对我来说是可行的,但代码相当冗长:

<%: Html.TextBoxFor(m => m.Description, new { style="width:50px;" })%>

46

一种可重复使用的解决方案是在您的 CSS 文件中设置宽度。

.wide
{
     width: 300px;
}

然后使用上面的标记设置它

<%= Html.TextBoxFor(m => m.Description, new { @class= "wide" })%> 

16
您可以将它作为一个属性附加。请尝试以下代码:

<div class="editor-field">
     <%= Html.TextBoxFor(m => m.Description, new { style = "width:20em;" })%>                     
</div>

1
20em 中的 em 代表什么? - VoodooChild
我还注意到你的答案和上面Josh的答案之间存在另一个差异。你用了<%=,而Josh用了<%: - 这两者是一样的吗? - VoodooChild
不要使用VoodooChild,<%= 相当于 Response.Write(foo),而 <%: 则相当于 Response.Write(Html.Encode(foo)),这就是它们的区别。 - dacanetdev
@VoodooChild:“最初,该单位是从当前使用的字体中大写字母“M”的宽度推导出来的。” http://en.wikipedia.org/wiki/Em_(typography) - Michael Shimmins
我仍然不明白其中的区别,请详细说明! - VoodooChild
这是一年前的事情,但<%:将编码字符串以确保HTML安全。 - AndyMcKenna

3
你可以这样做:
  @Html.TextBoxFor(model => model.Email, new Dictionary<string, object>() { { "readonly", "true" }, { "style", "width:250px;" } })

2
对我来说,通过在@Html.TextBoxFor的CSS中添加“input”来实现:

CSS:

.campoTexto input {
    width: 50px;
}

对于:

<div class="campoTexto">
@Html.TextBoxFor(model => model.nombre)
</div>

2

只需使用像“TextBoxFor,TextArea”等属性,而不是“EditorFor”...

很多人在使用脚手架时,必须自己更改字段或在模型中使用数据注释,如[DataType(Multiline)]


1
对我有用。该属性实际上是[DataType(DataType.MultilineText)]。 - Simon Clough

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接