2017-12-03 19 views
0

私はいくつかのintを含むモデルを持っています。 1つはデフォルト値を持ち、もう1つはデフォルト値を持ちません。私はAの値4とBの空の値で入力フィールドをレンダリングしたいと思います。私のBの場合、Razrは自動でデフォルトを0に設定しているようです。Razrで空の必須入力フィールドを表示するには

モデル

public class MyModel 
{ 
    public int A { get; set; } = 4; 
    public int B { get; set; }; 
} 

コントローラ

// GET /MyModel/Create 
public ActionResult Create() 
{ 
    var myModel = new MyModel(); 
    return View(myModel); 
} 

ビューを作成

@Html.EditorFor(model => model.A, new { htmlAttributes = new { @class = "form-control" } }) 
@Html.EditorFor(model => model.B, new { htmlAttributes = new { @class = "form-control" } }) 

しかしBは0

としてレンダリングするよう私はBためのエディタに属性で@value = ""を渡して試してみましたが細かいレンダリングするが、それはまだ0

どのように私は空のフィールドとしてBをレンダリングできるようレンダリング?私はそれが必須フィールドであるので、nullableにしたくありません。

+0

デフォルト値を追加したい場合= 0に設定したい場合* 'B'をヌル可能にしますか? – rene

答えて

1

intは、nullであることはできません。あなたは最初null(空)値を表示するが、それは必要な作り、プロパティint?を作り、int型のため[Required]属性

[Required(ErrorMessage = "...")] 
public int? B { get; set; }; 

とビューの

@Html.EditorFor(m => m.B, new { htmlAttributes = new { @class = "form-control" } }) 
@Html.ValidationMessageFor(m => m.B) 
関連する問題