DisplayFormat para TextBoxFor en MVC

Necesito redondear de 4 dígitos decimales a 2 dígitos y mostrar en MVC 3 UI

Algo como esto 58.8964 a 58.90

Intentado siguiendo esto¿Cómo debo usar EditorFor () en MVC para una moneda / tipo de dinero? pero no funciona

Como estoy usando TextBoxFor => quité ApplyFormatInEditMode aquí. Incluso lo intenté con ApplyFormatInEditMode, pero nada funciona. Todavía me muestra 58.8964.

MyModelClass

 [DisplayFormat(DataFormatString = "{0:F2}")]
 public decimal? TotalAmount { get; set; }

 @Html.TextBoxFor(m=>m.TotalAmount)

¿Cómo puedo lograr esta ronda?

No puedo usar EditorFor (m => m.TotalAmount) aquí, ya que necesito pasar algunos atributos html

Editar:

Después de depurar con el código fuente MVC, usan internamente

 string valueParameter = Convert.ToString(value, CultureInfo.CurrentCulture);

en MvcHtmlString InputHelper () método de InputExtension.cs que tomavalor del objeto Como parámetro y conversión. No están utilizando ningún formato de visualización allí. ¿Cómo podríamos arreglarlo?

Me las arreglé para arreglar de esta manera. Como tengo un ayudante personalizado, puedo administrar con el siguiente código

 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);
   }

Respuestas a la pregunta(5)

Su respuesta a la pregunta