我有这样的事情:
@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&#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="" />
当我明确想要那个文本框时,为什么它会给我输入文字?
答案 0 :(得分:3)
我不明白什么是错的。 <input type="text" />
实际上是HTML文本框。
如果您想要多行“文本框”,请改用Html.TextArea
。关于SO的良好资源,如何使用它:creating multiline textbox using Html.Helper function
答案 1 :(得分:1)
问题是你正在使用
@Html.TextBoxFor
如mipe34所证实,这明确指出你想要一个文本框(单行)而不是文本区域(多行)。
如果您使用过
@Html.EditorFor
然后MVC将查看您的属性并相应地呈现正确的控件 - 如果您使用了EditorFor,那么您已经生成了[DataType(DataType.MultilineText)]
生成textarea。
换句话说:始终使用EditorFor +属性或使用正确的xFor并且不要打扰属性。