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を使用した場合、テキストエリアを生成するはずのコントロールが既に存在します。

言い換えると、常にEditorFor +属性を使用するか、正しいxForを使用し、属性を気にしないでください。

于 2013-03-18T10:11:27.387 に答える