我对使用EditorFor(并使用MVC5)的表单进行了一些修改,但我找不到设置文本框大小的方法... 我努力尝试:
@Html.EditorFor(model => model.Nom, new{@style="width:400px"})
但这不起作用.. 有一个简单的方法吗?
答案 0 :(得分:15)
在MVC到版本5中,EditorFor不允许您以这种方式指定html元素。它只能用于非编辑器上下文,如TextBoxFor等......
在MVC 5.1中,他们添加了在编辑器模板中指定html属性的功能,现在可以执行此操作:
@Html.EditorFor(model => model, new { htmlAttributes = new { @class = "form-control" }, })
答案 1 :(得分:7)
使用 MVC 5 - 您需要在视图模型ejm上使用 [DataType(DataType.MultilineText)] 属性:
using System.ComponentModel.DataAnnotations;
public class Requests
{
[Display(Name = "Id")]
public int RequestId { get; set; }
[DataType(DataType.MultilineText)]
public string Comments { get; set; }
}
答案 2 :(得分:1)
将css类应用于EditorFor模板并不是一个好主意,因为EditorTemplate可能包含许多元素。你可以做的是在你的EditorTempalte文件中应用你的CSS事物。结帐this答案了解更多详情。
但是如果你只是想渲染一个textarea,你可以简单地使用TextAreaFor辅助方法。
@Html.TextAreaFor(model => model.Nom, new { @class = "myCustomClass" })
和你的css
.myCustomClass
{
width:400px;
}
如果您特别想确保此css样式覆盖主要样式,则可以使用!IMPORTANT
。
.myCustomClass
{
width:400px !IMPORTANT;
}
答案 3 :(得分:1)
相同但在VB中
@Html.TextBoxFor(Function(model) model.nit , New With {.class = "form-control"})
答案 4 :(得分:0)
如果要将其应用于所有EditorFor,只需将Site.css中的max-width从280px更改为任何其他值。 例如:
textarea {
/*max-width: 280px;*/
max-width: 900px;
}
这在MVC 5.1中对我有用