web-dev-qa-db-ja.com

TextBoxForの通貨のString.Format

私は@String.Format("{0:0.00}",Model.CurrentBalance)をこの@Html.TextBoxFor(model => model.CurrentBalance, new { @class = "required numeric", id = "CurrentBalance" })に入れようとしています

通貨をテキストボックス内に.00と表示したいのですが、うまくいきません。これを行う方法についてのアイデアはありますか?

19
Samjus

string.format("{0:c}", Model.CurrentBalance)は通貨フォーマットを提供します。

OR

@Html.TextBoxFor(model => model.CurrentBalance, new { @class = "required numeric", id = "CurrentBalance", Value=String.Format("{0:C}",Model.CurrentBalance) })

29
Sam Axe
@Html.TextBoxFor(model => model.CurrentBalance, "{0:c}", new { @class = "required numeric", id = "CurrentBalance" })

これにより、フォーマットを設定し、追加のHTML属性を追加できます。

14
Gail Foad

Dan-o's ソリューションは機能しましたが、フォームベースのTempDataの使用に関する問題が見つかりました( ImportModelStateFromTempDataおよびExportModelStateToTempData を参照)。私のために働いた解決策は関連スレッドで David Spence's でした。

具体的には:

[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
public decimal? Price { get; set; }

ここで、ビューでEditorForを使用する場合、注釈で指定されたフォーマットを適用し、値をコンマで区切る必要があります。

<%= Html.EditorFor(model => model.Price) %>
1
cat5dev