在ASP.MVC 3中,如何指定多行EditorFor
(textarea)的列和行?我正在使用[UIHint("MultilineText")]
,但找不到有关如何为文本区域添加属性的任何文档。
所需的HTML:
<textarea cols="40" rows="10"></textarea>
我的MVC 3模型的相关部分:
[UIHint("MultilineText")]
public string Description { get; set; }
我的Razor cshtml的相关部分:
<div class="editor-field">
@Html.EditorFor(model => model.Description)
</div>
我在View Source中获得的内容:
<div class="editor-field">
<textarea class="text-box multi-line" id="Description" name="Description"></textarea>
</div>
如何设置行和列?
答案 0 :(得分:129)
使用TextAreaFor
@Html.TextAreaFor(model => model.Description, new { @class = "whatever-class", @cols = 80, @rows = 10 })
或使用multi-line
类的样式。
你也可以为此写EditorTemplate。
答案 1 :(得分:26)
在ASP.NET MVC 5中,您可以使用[DataType(DataType.MultilineText)]
属性。它将呈现 TextArea 标记。
public class MyModel
{
[DataType(DataType.MultilineText)]
public string MyField { get; set; }
}
然后在视图中,如果需要指定行,可以这样做:
@Html.EditorFor(model => model.MyField, new { htmlAttributes = new { rows = 10 } })
或者只使用具有正确重载的TextAreaFor:
@Html.TextAreaFor(model => model.MyField, 10, 20, null)
答案 2 :(得分:8)
答案 3 :(得分:5)
一个选项似乎是使用CSS来设置textarea的样式
.multi-line { height:5em; width:5em; }
Amurra接受的答案似乎暗示在使用EditorFor时会自动添加此类,但您必须验证这一点。
编辑:确认,确实如此。所以是的,如果你想使用EditorFor,那么使用这种CSS样式可以满足您的需求。<textarea class="text-box multi-line" id="StoreSearchCriteria_Location" name="StoreSearchCriteria.Location">
答案 4 :(得分:0)
在mvc 5中
@Html.EditorFor(x => x.Address,
new {htmlAttributes = new {@class = "form-control",
@placeholder = "Complete Address", @cols = 10, @rows = 10 } })
答案 5 :(得分:0)
在 .net VB 中 - 您可以在剃刀文件中使用以下内容控制列和行:
@Html.EditorFor(Function(model) model.generalNotes, New With {.htmlAttributes = New With {.class = "someClassIfYouWant", .rows = 5,.cols=6}})
答案 6 :(得分:0)
@ Html.TextArea(“ txtNotes”,“”,4,0,新建{@class =“ k-textbox”,样式=“宽度:100%;高度:100%;”})