2017-11-28 10 views
0

私は、テキスト入力を生成するHTMLヘルパーを使用した単純なビューを持っている:値がゼロの場合に空のテキストボックスを表示するにはどうすればよいですか?

@Html.TextBox("Something",Model.myObject.myValue) 

myValueはフロートです。

myValue==0の場合、0を表示したくありません。それは可能でしょうか?

ありがとうございます!

+1

'0'は、値の不在を表している場合、あなたは 'NULL可能を使用して検討することもできint? '代わりに。 – grek40

+0

いいえ、値は0で初期化されますが、フォームが空白のフォームとして表示されている場合は、テキスト入力に「0」を入れたくありません。 –

答えて

5

あなただけの条件付きのシンプルなインラインを使用することができます。

@Html.TextBox("Something", Model.myObject.myValue == 0 ? "" : Model.myObject.myValue.ToString()) 

逆に、モデル自体にこれを行うにはきれいかもしれません。あなたは、モデル定義に計算されたプロパティを追加することができます。

public string MyNonZeroValue 
{ 
    get { return myObject.myValue == 0 ? "" : myObject.myValue.ToString(); } 
} 

それからちょうどそのモデルプロパティにバインド:

@Html.TextBox("Something", Model.MyNonZeroValue) 
2

クイックチェックを追加するのはどうですか。値を設定するとき

@Html.TextBox("Something", Model.myObject.myValue == 0 ? string.Empty : Model.myObject.myValue.ToString()) 
+0

このソリューションは、Davidが次のように提案したように、最後にToString()を追加すると機能します。 –

+0

@Matt Yep、三項演算子で私の型を混合する... __updated__ – phuzi

関連する問題