Мне нужно округлить цифру 4 цифры до 2 цифр и показать в MVC 3 UI
Что-то вроде 58.8964 to 58.90
Пробовал после этого Как использовать редактор() в MVC для типа валюты/денег?, но не работает.
Как я использую TextBoxFor = > я удалил ApplyFormatInEditMode здесь. Даже Я попытался использовать ApplyFormatInEditMode, но ничего не работает. Показывающий меня 58.8964.
MyModelClass
[DisplayFormat(DataFormatString = "{0:F2}")]
public decimal? TotalAmount { get; set; }
@Html.TextBoxFor(m=>m.TotalAmount)
Как я могу достичь этого раунда?
Я не могу использовать EditorFor (m = > m.TotalAmount) здесь, так как мне нужно передать некоторые htmlAttributes
Edit:
После отладки с исходным кодом MVC они внутренне используют
string valueParameter = Convert.ToString(value, CultureInfo.CurrentCulture);
в MvcHtmlString InputHelper() метод InputExtension.cs, который принимает значение объекта как параметр и преобразование. Они не используют какой-либо формат отображения. Как мы можем исправить?
Мне удалось это сделать. Поскольку у меня есть пользовательский помощник, я могу справиться с приведенным ниже кодом.
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);
}