【问题标题】:TextBoxFor Mulitline多行文本框
【发布时间】:2012-01-09 20:39:39
【问题描述】:

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

以下是我尝试过的:

@Html.TextBoxFor.Multiline (does not work)

我已将 Multiline 放在 new 的末尾,但没有奏效。这样做的最简单方法是什么。

谢谢你,我正在使用 MVC3 C#

【问题讨论】:

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


【解决方案1】:

您可以使用TextAreaFor 助手:

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

但更好的解决方案是使用[DataType] 属性装饰您的Headline 视图模型属性,指定您希望它呈现为<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;
}

现在您已经正确分离了关注点。

【讨论】:

  • 文本区域将成为您想要的多行表单字段。调整大小是在不同的浏览器上发生的事情,Firefox 和 Chrome 都允许这种情况发生,而 IE 则不允许。
  • @Darin 感谢 Darin 解释这件小事,在此之前我没有使用 '[Datatype(DataType.MultilineText)]' Annotation for textarea 谢谢。
  • 我知道这是一个古老的帖子,但它是“razor multiline textboxfor”的热门搜索结果,我只是想补充一下 CSS 选择器是错误的,应该是 div.headline textarea跨度>
猜你喜欢
  • 2011-06-10
  • 2011-08-20
  • 2013-10-10
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多