2011-02-10 144 views
8

我知道你可以使用EditorType的html助手的DataType属性来指定模型实体的特定属性应该显示为多行输入字段。使用Html.EditorFor生成具有特定行数和列数的文本区域

如果我想指定文本区域必须具有的行数和列数?

在模型:

[DataType(DataType.MultilineText)] 
public string HTMLText { get; set; } 

在视图:

@Html.EditorFor(x => x.HTMLText) 

通缉的结果:

<textarea id="HTMLText" rows="10" cols="40">value</textarea> 

有没有一种方法来生成这种代码,而无需使用@ Html.Textarea()助手?

回答

8

不知道如何设置行和列,但可以使用.multi-line类来更改这些textareas的CSS。使用EditorFor时,该类将添加到textarea中,因此您可以指定该类中的宽度和高度以获得所需的尺寸。

.multi-line { height:5em; width:5em; } 
+0

使用这种技术将意味着我将不得不在视图中指定一个类。我正在寻找一种方法来直接从模型中控制这一点。 – Jason 2011-02-10 11:28:39

+0

@Jason - 如果你做了页面级的CSS,你只需要在视图中指定它。如果你把它放在外部样式表中,那么它将不在视图中。我知道它并不完全回答你的问题,但只是让你知道这是一个选项。 – amurra 2011-02-10 12:59:07

0

它看起来像这样就不再需要对MVC 5,当你有 @ Html.EditorFor与DataType.MultilineText领域。

1

您可以指定相当于属性大小和炭ROW和COL的剃刀/ C#即:

@Html.TextAreaFor(model => model.Longtext, new { htmlAttributes = new { @class = "ctrl-col2 ctrl-col1", @row = "4", @col = "30" } }) 
相关问题