MVC .net文本框到texbox区域(Razor)

时间:2015-01-16 11:36:18

标签: c# .net asp.net-mvc-5

我有一个文本框,我想要展开并添加几行,使其成为文本区域而不是小盒子。

原始代码

 @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" />

任何人都可以建议一个简单的解决方案

3 个答案:

答案 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并将属性传递为AdditionalViewDataexample here

答案 1 :(得分:1)

@Html.TextAreaFor(model => model.emailBody, new { @rows = 3 })

您可以根据您的选择使用textarea并设置行,然后更好地增加普通文本框的行....

答案 2 :(得分:0)

为什么你不能使用这样的东西

@Html.TextAreaFor(model => model.emailBody, new { @rows = 3 })

而不是EditorFor,您可以使用TextAreaFor在文本框中获取多行