データ注釈とエンティティ フレームワークを使用して、数値のみの入力が許可されていることを確認する方法があるかどうかを把握しようとしています。
次のコードを使用しています
[Required]
[DisplayName("Client No")]
[Column("client_no", TypeName = "smallint")]
public virtual Int16 Number { get; set; }
これを数値クラスで表示したい。
ある場所では、次を使用します
<input type="number" name="searchClientNo" class="numericOnly" /><br />
しかし、私が使用しているエントリーフォームでは
@Html.EditorFor(m => m.Number, EditorTemplate.TextBox)
次のコードでカスタムメイドの EditorFor があります
<div class="editor-label">
@Html.Label((ViewData.ModelMetadata.DisplayName??ViewData.ModelMetadata.PropertyName),
new Dictionary<string, object>
{
{ "for", ViewData.ModelMetadata.PropertyName }
})
</div>
<div class="editor-field">
@Html.TextBox("", (object)Model,
new Dictionary<string, object>
{
{ "id", ViewData.ModelMetadata.PropertyName },
{ "name", ViewData.ModelMetadata.PropertyName },
{ "class", "text-box single-line"},
{ "data-bind", "value: " + ViewData.ModelMetadata.PropertyName },
})
@Html.ValidationMessage(ViewData.ModelMetadata.PropertyName,
new Dictionary<string, object>
{
{ "data-valmsg-for", ViewData.ModelMetadata.PropertyName }
})
</div>
このコードを変更せずに保持しながら、数値のみのテキストボックスを使用するにはどうすればよいでしょうか。UIHint を使用する必要がありますか?
あるいは、既存の EditorFor をよりスマートにすることは可能ですか?
このブログ投稿http://robseder.wordpress.com/2012/06/01/uihint-displaytemplates-and-editortemplates-in-mvc/を見つけましたが、既にカスタム EditorFor を使用しています。EditorTemplate.NumericTextBox などの新しいタイプを追加し、別のエディターを追加する必要があるのでしょうか? これは使えそうなので、明日やってみます…
よろしくお願いします。