4 桁の 10 進数を 2 桁に丸め、MVC 3 UI に表示する必要があります
このようなもの 58.8964 から 58.90
これに従ってみましたどのようにMVCでEditorFor()を通貨/お金の種類に使用する必要がありますか? しかし、機能していません。
TextBoxFor=> を使用しているため、ここで ApplyFormatInEditMode を削除しました。私も ApplyFormatInEditMode を試しましたが、何も機能しません。まだ58.8964が表示されています。
MyModelClass
[DisplayFormat(DataFormatString = "{0:F2}")]
public decimal? TotalAmount { get; set; }
@Html.TextBoxFor(m=>m.TotalAmount)
このラウンドオフを達成するにはどうすればよいですか?
いくつかの htmlAttributes を渡す必要があるため、ここでは EditorFor(m=>m.TotalAmount) を使用できません
編集:
MVC ソース コードでデバッグした後、内部的に使用します。
string valueParameter = Convert.ToString(value, CultureInfo.CurrentCulture);
InputExtension.cs の MvcHtmlString InputHelper() メソッドで、 オブジェクトの値をパラメーターとして取り、変換します。そこでは表示形式を使用していません。どうすれば修正できますか?
この方法でなんとか直りました。カスタムヘルパーがあるので、以下のコードで管理できます
if (!string.IsNullOrEmpty(modelMetaData.DisplayFormatString))
{
string formatString = modelMetaData.DisplayFormatString;
string formattedValue = String.Format(CultureInfo.CurrentCulture, formatString, modelMetaData.Model);
string name = ExpressionHelper.GetExpressionText(expression);
string fullName = htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name);
return htmlHelper.TextBox(fullName, formattedValue, htmlAttributes);
}
else
{
return htmlHelper.TextBoxFor(expression, htmlAttributes);
}