MVC5 textarea行cols仅在显式指定时才起作用,而不是通过htmlAttributes

时间:2014-09-04 19:44:15

标签: razor asp.net-mvc-5

@Html.TextAreaFor(model => model.DESCRIPTION, 20, 50, new { htmlAttributes = new { @class = "form-control"} })

问题:上面的代码正确显示了textarea的行和列,但是下面忽略了rows / cols并显示了每个浏览器的默认大小。下面的代码出了什么问题?

以下代码中的额外new是在创建MVC实体框架控制器时由VS自动创建的(如http://www.asp.net/mvc/overview/releases/mvc51-release-notes所述)

@Html.TextAreaFor(model => model.DESCRIPTION, new { htmlAttributes = new { @class = "form-control", @rows="20", @cols="50"} })

6 个答案:

答案 0 :(得分:3)

这适用于MVC 5.2.2:

@Html.TextAreaFor(model => model.Caracteristicas, new { @class = "form-control", @rows = "10" })

答案 1 :(得分:2)

尝试使用TextAreaFor的mvc5 cols和rows属性,并为文本区域应用CSS样式。

        <div class="col-md-10" id="textArea">
            @Html.TextAreaFor(model => model.DESCRIPTION, 10, 100, new { htmlAttributes = new { @class = "form-control" } })                
        </div>

和CSS:

#textArea textarea {
max-width: 600px;}

答案 2 :(得分:1)

在ASP MVC5中,您可以使用col-[size]-[width]代替@col="50"来进行文本区域或文本框控件。如果您想要的内容比“ 12”宽,请使用样式。

@Html.TextAreaFor(m => m.DESCRIPTION, new { @class = "form-control col-md-12", rows="20" })

答案 3 :(得分:0)

可以做到,您必须使用与@ Html.EditorFor

相同的语法
@Html.TextAreaFor(model => model.DESCRIPTION, htmlAttributes: new { @class = "form-control", rows=20, cols=50 })

答案 4 :(得分:0)

替换此

interface Slicer<T extends Serializable> {
    Optional<Map<String, T>> pointer();
}
abstract class DynamoDbSlicer implements Slicer<AttributeValue> {
    @Override
    public abstract Optional<Map<String, AttributeValue>> pointer();
}

为此

@Html.TextAreaFor(model => model.DESCRIPTION, 20, 50, new { htmlAttributes = new { @class = "form-control"} })

答案 5 :(得分:-1)

我不相信您应该能够做到的额外

 @Html.TextAreaFor(model => model.DESCRIPTION, new { @class = "form-control", @rows="20", @cols="50" })