Html.EditorForテキストボックスを通貨形式にフォーマットしようとしていますが、このスレッド TextBoxForの通貨のString.Format を基にしています。しかし、私のテキストは通貨のフォーマットなしで0.00として表示されます。
<div class="editor-field">
@Html.EditorFor(model => model.Project.GoalAmount, new { @class = "editor- field", Value = String.Format("{0:C}", Model.Project.GoalAmount) })
私がやっていることのためのコードがあります、そして、これはもちろん、エディターフィールドdiv内に含まれるWebサイト自体のそのフィールドのhtmlです。
<input class="text-box single-line valid" data-val="true"
data-val-number="The field Goal Amount must be a number."
data-val-required="The Goal Amount field is required."
id="Project_GoalAmount" name="Project.GoalAmount" type="text" value="0.00">
どんな助けでも感謝します、ありがとう!
[DisplayFormat]
属性でGoalAmount
ビューモデルプロパティを修飾できます。
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")]
public decimal GoalAmount { get; set; }
そして、単にビューで:
@Html.EditorFor(model => model.Project.GoalAmount)
EditorForヘルパーの2番目の引数は、考えていることをまったく行いません。追加のViewDataをエディターテンプレートに渡すことができます。これはhtmlAttributesではありません。
別の可能性は、通貨(~/Views/Shared/EditorTemplates/Currency.cshtml
)のカスタムエディターテンプレートを記述することです。
@Html.TextBox(
"",
string.Format("{0:c}", ViewData.Model),
new { @class = "text-box single-line" }
)
その後:
@Html.EditorFor(model => model.Project.GoalAmount, "Currency")
または[UIHint]
を使用します。
[UIHint("Currency")]
public decimal GoalAmount { get; set; }
その後:
@Html.EditorFor(model => model.Project.GoalAmount)