1

我有这样的事情:

@Html.TextBoxFor(model => model.Message)

像这样声明消息:

[Required]
[DataType(DataType.MultilineText)]
[Display(Name = "Message", ResourceType = typeof(NameResources))]
[StringLength(256, ErrorMessageResourceName = "MailBoxMessageLengthError", ErrorMessageResourceType = typeof(NameResources), MinimumLength = 2)]
public string Message { get; set; }

而且,我得到这样的输出:

<input data-val="true" data-val-length="Wiadomość nie może przekraczać 256 znak&amp;#243;w" data-val-length-max="256" data-val-length-min="2" data-val-required="Pole Wiadomość jest wymagane." id="Message" name="Message" type="text" value="" />

为什么当我明确想要那个文本框时它给我文本输入?

4

2 回答 2

3

我不明白出了什么问题。<input type="text" />实际上是HTML文本框。如果您想要多行“文本框” ,请Html.TextArea改用。关于 SO 的好资源,如何使用它:使用 Html.Helper 函数创建多行文本框

于 2013-01-12T21:25:12.380 回答
1

问题是你正在使用

@Html.TextBoxFor

正如 mipe34 所确认的,这明确说明您想要一个文本框(单行)而不是文本区域(多行)。

如果你用过

@Html.EditorFor

然后 MVC 将查看您的属性并相应地呈现正确的控件 -[DataType(DataType.MultilineText)]如果您使用了 EditorFor,您已经拥有它会生成一个 textarea。

换句话说:始终使用 EditorFor+attributes 或使用正确的 xFor 并且不要打扰属性。

于 2013-03-18T10:11:27.387 回答