我有一个文本框,我想要展开并添加几行,使其成为文本区域而不是小盒子。
原始代码
@Html.EditorFor(x => x.emailBody)
<input type="submit" value="Send Mail" class="btn btn-default" />
我在SOF上找到了这个,但它没有用,而且该字段看起来相同
@Html.EditorFor(x => x.emailBody, new { @class = "form-control", @rows = 5 })
<input type="submit" value="Send Mail" class="btn btn-default" />
任何人都可以建议一个简单的解决方案
答案 0 :(得分:1)
向属性添加DataType.MultilineText
属性,@Html.EditorFor()
将呈现<textarea>
而不是<input type="text" ../>
[DataType(DataType.MultilineText)]
public string emailBody { get; set; }
另请注意(假设您使用MVC-5.1 +),然后添加html属性,它应该是
@Html.EditorFor(x => x.emailBody, new { htmlAttributes = new { @class = "form-control", @rows = 5 } })
如果您只有MVC-5,请使用@Html.TextAreaFor()
或创建自定义EditorTemplate
并将属性传递为AdditionalViewData
(example here)
答案 1 :(得分:1)
@Html.TextAreaFor(model => model.emailBody, new { @rows = 3 })
您可以根据您的选择使用textarea并设置行,然后更好地增加普通文本框的行....
答案 2 :(得分:0)
为什么你不能使用这样的东西
@Html.TextAreaFor(model => model.emailBody, new { @rows = 3 })
而不是EditorFor,您可以使用TextAreaFor在文本框中获取多行