텍스트 상자에 통화 서식을 지정하기 위해 이 스레드(https://stackoverflow.com/questions/6963497/string-format-for-currency-on-a-textboxfor)를 기반으로 Html.Editor 텍스트 상자의 서식을 지정하려고 합니다. 그러나 내 텍스트는 여전히 통화 서식없이 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에 포함 된 웹 사이트 자체의 해당 필드에 대한 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]` 속성으로 장식할 수 있습니다:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")]
public decimal GoalAmount { get; set; }
속성을 사용하여 뷰에 간단히 표시할 수 있습니다:
@Html.EditorFor(model => model.Project.GoalAmount)
EditorFor 헬퍼의 두 번째 인수는 여러분이 생각하는 것과는 전혀 다른 역할을 합니다. 이 인수는 에디터 템플릿에 추가 뷰 데이터를 전달할 수 있게 해주지만, 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)