使用HtmlAttributes重载时TextArea不起作用

时间:2018-06-01 18:12:07

标签: asp.net asp.net-mvc asp.net-mvc-5 textarea

由于某些原因,当我将TextAreaFor样式属性设置为width属性时,它不起作用,我的意思是宽度没有改变,并且Id也没有改变:

 @Html.TextAreaFor(model => model.AdminSetting.Style, new { htmlAttributes = new 
 { @class = "form-control", @style = "width: 100%;", @id = "HelloWorld" } })

但是,如果我删除 htmlAttributes 这个词并将其更改为此,那么它运行正常。我真的好奇为什么:

@Html.TextAreaFor(model => model.AdminSetting.Style, 
new { @class = "form-control", @style = "width: 100%;", @id = "HelloWorld" })

为什么我的TextAreaFor htmlAttributes 无法正常工作,除非我删除了我的htmlAttributes声明并将其声明为这样?

 new { @class = "form-control", @style = "width: 100%;", @id = "HelloWorld" })

而不是这个?

new { htmlAttributes = new 
 { @class = "form-control", @style = "width: 100%;", @id = "HelloWorld" } })

我查看了文档,我确信我正在使用正确的重载。

2 个答案:

答案 0 :(得分:0)

语法:

new { htmlAttributes = new { @class = "form-control", @style = "width: 100%;", @id = "HelloWorld" } })

表示ViewData的其他数据,可与EditorFor一起使用。

请参阅: MVC View htmlAttribute not working

MSDN - EditorFor

MSDN - TextAreaFor

答案 1 :(得分:0)

尝试如下所示:

@Html.TextAreaFor(m => m.AdminSetting.Style, 
    new { maxlength = 1000, @class = "form-control", @id = "HelloWorld" })

助手Html.TextAreaForHtml.EditorForHtml.DisplayFor的独特之处在于它们被称为“模板助手”。它们不是仅仅吐出一些HTML的定义位,而是能够实际使用视图来确定它们的输出。这些视图分别称为“编辑器模板”或“显示模板”。有关详细信息,请查看Html.EditorFor and htmlAttributes

希望这会有所帮助......