Asp.net 使用Html.EditorFor生成具有特定行数和列数的textarea

Asp.net 使用Html.EditorFor生成具有特定行数和列数的textarea,asp.net,asp.net-mvc,asp.net-mvc-3,razor,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Razor,我知道您可以将DataType属性与editorforhtml助手一起使用,以指定模型实体的特定属性应显示为多行输入字段 如果要指定文本区域必须具有的行数和列数,该怎么办 在模型中: [DataType(DataType.MultilineText)] public string HTMLText { get; set; } 他认为: @Html.EditorFor(x => x.HTMLText) 通缉结果: <textarea id="HTMLText" rows="10"

我知道您可以将DataType属性与editorforhtml助手一起使用,以指定模型实体的特定属性应显示为多行输入字段

如果要指定文本区域必须具有的行数和列数,该怎么办

在模型中:

[DataType(DataType.MultilineText)]
public string HTMLText { get; set; }
他认为:

@Html.EditorFor(x => x.HTMLText)
通缉结果:

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

有没有一种方法可以在不使用@Html.Textarea()帮助程序的情况下生成此类代码?

不确定如何设置行和列,但可以使用
.multi-line
类更改这些文本区域的CSS。使用EditorFor时,此类会添加到文本区域,以便您可以在该类中指定宽度和高度以获得所需的尺寸

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

当您有了
@Html.EditorFor带有DataType.multilitext字段。

您可以指定Razor/c中行和列的属性大小和字符等效值,即:


使用这种技术意味着我必须在视图中指定一个类。我正在寻找一种直接从模型中控制它的方法。@Jason-如果您使用页面级CSS,您只需在视图中指定它。如果将其放入外部样式表中,则它将不在视图中。我知道这并不能完全回答您的问题,但只是让您知道这是一个选项。@Lmrini freeze的awnser是更好的方法,而不是添加一个css类,您可以使用razor生成所需的属性。
@Html.TextAreaFor(model => model.Longtext, new { htmlAttributes = new { @class = "ctrl-col2 ctrl-col1", @row = "4", @col = "30" } })