TextBoxFor Multiline

时间:2012-01-09 20:39:40

标签: c# asp.net asp.net-mvc-3 razor

大家好,我已经在这5天了,并且找不到一个解决方案,试图让它继续多行@Html.TextBoxFor(model => model.Headline, new { style = "width: 400px; Height: 200px;"}),但我没有运气。

以下是我的尝试:

@Html.TextBoxFor.Multiline (does not work)

我已经将Multiline放在了新的结尾,但是没有用。这样做最简单的方法是什么。

谢谢,我正在使用MVC3 C#

1 个答案:

答案 0 :(得分:48)

您可以使用TextAreaFor帮助程序:

@Html.TextAreaFor(
    model => model.Headline, 
    new { style = "width: 400px; height: 200px;" }
)

但更好的解决方案是使用Headline属性修饰[DataType]视图模型属性,指定您希望将其呈现为<textarea>

public class MyViewModel
{
    [DataType(DataType.MultilineText)]
    public string Headline { get; set; }

    ...
}

然后使用EditorFor帮助程序:

<div class="headline">
    @Html.EditorFor(model => model.Headline)
</div>

最后在CSS文件中指定其样式:

div.headline {
    width: 400px;
    height: 200px;
}

现在你有一个适当的关注点分离。