Asp.net MVC5与Bootstrap EditorFor尺寸

时间:2014-02-23 22:04:28

标签: asp.net twitter-bootstrap-3 asp.net-mvc-5

我对使用EditorFor(并使用MVC5)的表单进行了一些修改,但我找不到设置文本框大小的方法... 我努力尝试:

@Html.EditorFor(model => model.Nom, new{@style="width:400px"})

但这不起作用.. 有一个简单的方法吗?

5 个答案:

答案 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中对我有用