Форматирование строк в C # для строго типизированного представления - PullRequest
1 голос
/ 18 июля 2011

Я хочу знать, как я могу преобразовать поле со строгим типизированным представлением Цена в двухзначный спецификатор, как будто у меня есть денежное поле в моей БД, которое преобразует, например, 15 в 15,0000, я просто хочу отобразить 15,00 в виде ниже код:

<%: Html.TextBoxFor(model =>model.Price, new { maxlength = "5", style = "width:40px;" })%>

Я пробовал что-то вроде безуспешно:

<%: Html.TextBoxFor(model => String.Format("{0:n}"model.Price), new { maxlength = "5", style = "width:40px;" })%>

Ответы [ 5 ]

3 голосов
/ 18 июля 2011

Вы можете поместить атрибут в модель что-то вроде:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:n}")]

Если вы не хотите этого делать, вам нужно будет использовать текстовое поле «старого» стиля:

<%= Html.TextBox("Price", string.Format("{0:n}", Model.Price)) %>
2 голосов
/ 18 июля 2011

Лучше всего использовать атрибут формата отображения DataAnnotations в модели представления. Примерно так:

[DisplayFormat (DataFormatString = "{0: n}")]

А затем используйте Html.EditorFor (model => model.Price) для визуализации ввода.

2 голосов
/ 18 июля 2011

Попробуйте это:

<%: Html.TextBoxFor(model => model.Price.ToString("0.00"), new { maxlength = "5", style = "width:40px;" })%>

Обновление:

Вы также пропустили запятую в исходном синтаксисе, что может быть единственным препятствием для его работы.Должно было быть:

<%: Html.TextBoxFor(model => String.Format("{0:n}", model.Price), new { maxlength = "5", style = "width:40px;" })%>

Кроме того, для 2 десятичных знаков попробуйте это так:

<%: Html.TextBoxFor(model => String.Format("{0:0.00}", model.Price), new { maxlength = "5", style = "width:40px;" })%>
0 голосов
/ 10 октября 2015

это может помочь.

private DateTime hDay;  
     [DisplayName("Hire Date")]  
     [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]  
     public DateTime HireDate  
     {  
       get  
       {  
         if (hDay == DateTime.MinValue)  
         {  
           return DateTime.Today;  
         }  
         else  
           return hDay;  
       }  
       set  
       {  
         if (value == DateTime.MinValue)  
         {  
           hDay = DateTime.Now;  
         }  
       }  
     }

ИЛИ

мы тоже можем использовать этот способ

@Html.TextBoxFor(m => m.MktEnquiryDetail.CallbackDate, "{0:dd/MM/yyyy}")
0 голосов
/ 18 июля 2011

Вы пытались использовать mode.Price.ToString() и указывать желаемую строку формата в методе ToString?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...