2011-02-10 54 views
8

我知道你可以使用EditorType的html助手的DataType屬性來指定模型實體的特定屬性應該顯示爲多行輸入字段。使用Html.EditorFor生成具有特定行數和列數的文本區域

如果我想指定文本區域必須具有的行數和列數?

在模型:

[DataType(DataType.MultilineText)] 
public string HTMLText { get; set; } 

在視圖:

@Html.EditorFor(x => x.HTMLText) 

通緝的結果:

<textarea id="HTMLText" rows="10" cols="40">value</textarea> 

有沒有一種方法來生成這種代碼,而無需使用@ Html.Textarea()助手?

回答

8

不知道如何設置行和列,但可以使用.multi-line類來更改這些textareas的CSS。使用EditorFor時,該類將添加到textarea中,因此您可以指定該類中的寬度和高度以獲得所需的尺寸。

.multi-line { height:5em; width:5em; } 
+0

使用這種技術將意味着我將不得不在視圖中指定一個類。我正在尋找一種方法來直接從模型中控制這一點。 – Jason 2011-02-10 11:28:39

+0

@Jason - 如果你做了頁面級的CSS,你只需要在視圖中指定它。如果你把它放在外部樣式表中,那麼它將不在視圖中。我知道它並不完全回答你的問題,但只是讓你知道這是一個選項。 – amurra 2011-02-10 12:59:07

0

它看起來像這樣就不再需要對MVC 5,當你有 @ Html.EditorFor與DataType.MultilineText領域。

1

您可以指定相當於屬性大小和炭ROW和COL的剃刀/ C#即:

@Html.TextAreaFor(model => model.Longtext, new { htmlAttributes = new { @class = "ctrl-col2 ctrl-col1", @row = "4", @col = "30" } }) 
相關問題