2017-11-10 2 views
0

私はAsp.netコア2.0を使用していると私は、次のコードを持っている:TextBoxFor:i番号タイプではなく、デフォルト値=「」

@Html.TextBoxFor(model => model.personalData.sonsNumber, null, new { type = "number", value = "", required = "required", pattern="[0-9]" }) 

私は何をしようとしているが、その検証機能を使用することですがHMTL5が提供します。問題は私のmodel.personalData.sonsNumberがintであり、デフォルト値として数値を持っていて、デフォルト値を空の文字列( "")として設定する必要があることです。

私はすでにvalue=""を試しましたが、動作しません。

これを達成する方法を教えてもらえますか?

ありがとうございます。

答えて

1

あなたがNULL可能でintにintからあなたの財産の種類を変更することができます(int?

public class PersonalData 
{ 
    [Required] 
    public int? SonsNumber { set;get;} // I took the freedom to follow CamelCasing :) 
} 

NULL可能int型のデフォルト値は、そのタグヘルパー/ HTMLヘルパーは、そのための空の文字列をレンダリングします今NULLになります。 intタイプのデフォルト値は0

+0

ありがとうございます。 '?'は完璧に動作します。しかし、あなたは私にもう一つの疑問を浮かべます:なぜ[必須]タグを使用していて、これが私を助けることができるのでしょうか? –

+1

これはサーバー側のモード検証用です。データがサーバーにポストされると、モデル検証フレームウォークは、ポストされたデータを検証できます。タグヘルパーは、この属性を使用して、jqueryクライアント側の検証に必要なhtml5属性を生成します。クライアントからのデータは信用しないでください。常にサーバー上で検証します。モデル検証フレームワークを活用したくない場合は、単に 'Required'属性を削除するだけです – Shyju

関連する問題