私は、Html.EditorForのテキストボックスに通貨フォーマットを適用しようとしています。しかし、私のテキストは通貨フォーマットなしで0.00と表示されるだけです。
<div class="editor-field">
@Html.EditorFor(model => model.Project.GoalAmount, new { @class = "editor- field", Value = String.Format("{0:C}", Model.Project.GoalAmount) })
私がやっていることのコードがあり、ここにウェブサイト自体のそのフィールドのためのhtmlは、もちろんエディタフィールドのdiv内に含まれています。
<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">
何かお手伝いいただけると助かります、ありがとうございます
GoalAmountビューモデルのプロパティを
[DisplayFormat]` 属性で装飾することができます。
[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)