7

MVC3 の Razor エンジンを使用してビューを生成し、次のコード行でテキスト ボックスを生成しています。

 @Html.EditorFor(model => model.AddressLine1)

関連するモデルでは、データ注釈属性を使用して、許容される文字数を 55 に制限しています。

[StringLength(55)]
public string  AddressLine1 { get; set; }

ただし、これにより、ユーザーはより長いアドレスを入力して、フォームを送信しようとしたときに検証メッセージを介して通知されるようになります。ユーザーがそれ以上入力できないように、テキスト ボックスを 55 文字に制限するにはどうすればよいですか?

自分でテキスト ボックスを生成する場合、入力タイプに maxlength 属性を使用しますが、Html.EditFor メソッドを使用して同じ結果を得る方法がわかりません。

4

3 に答える 3

10
 @Html.TextBoxFor(model => model.AddressLine1, new {maxlength = 55}) 

maxlength
type 属性の値が text、email、search、password、tel、または url の場合、この属性はユーザーが入力できる最大文字数 (Unicode コード ポイント) を指定します。他のコントロール タイプの場合は無視されます。

DOM を変更せずに jQuery を使用することもできます。

$('#AddressLine1').keypress(function(){
    return this.value.length < 55
})
于 2012-06-29T13:46:00.837 に答える
9

の代わりにmaxlengthと aを使用TextBoxForEditorFor

EditorForそれを可能にする過負荷はありません。

これはあなたにとってさらに興味深いかもしれません: Asp.Net MVC の DataAnnotations StringLength からのテキスト ボックスの maxlength 属性

于 2012-06-29T13:45:37.023 に答える