Аннотации данных ASP.NET MVC для формата валюты
У меня есть POCO со стоимостью как float.
public class CostChart
{
public string itemType { get; set; }
public float? Cost{ get; set; }
}
Мне нужно вернуть стоимость в формате валюты, например.
$U 4.882,50.
Какую аннотацию данных я должен использовать?
Вот как я показываю на мой взгляд.
<td>@Model.Cost</td>
Ответы
Ответ 1
Вы пытались использовать DataType.Currency
:
public class CostChart
{
public string itemType { get; set; }
[DataType(DataType.Currency)]
public float? Cost{ get; set; }
}
В качестве альтернативы вы можете использовать DataFormatString
следующим образом:
[DisplayFormat(DataFormatString = "{0:C0}")]'
public float? Cost{ get; set; }
Но я предпочитаю устанавливать формат отображения с EditorFor
. Здесь отличный учебник по расширению шаблонов редактора для ASP.NET MVC.
Таким образом, вы пишете логику отображения ваших валют в ОДНОМ месте, и вам не нужно добавлять аннотацию извлечения каждый раз, когда вы хотите отобразить сумму в валюте.
--Edit
Чтобы заставить его работать в EditorFor, вы также можете добавить ApplyFormatInEditMode = true
в конец DataFormatString
делая строку следующим образом:
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
Ответ 2
Попробуйте использовать:
[DisplayFormat(DataFormatString = "{0:C0}")]
Посетите этот пост
fooobar.com/questions/453132/...
Ответ 3
попробуйте следующее:
public class CostChart
{
public string itemType { get; set; }
[DataType(DataType.Currency)]
public float? Cost{ get; set; }
}
если вы все еще не видите символ $, в файле web.config
напишите эту строку кода
<globalization culture ="en-us"/>
Ответ 4
Посмотрите в этой статье (Codeculous.) Альтернативный способ проверки и отображения соответствующих символов валюты без настройки глобализации и просто путем добавления аннотаций данных DataType(DataType.Currency)
.
Ответ 5
Вы можете сделать в RazorView
@string.Format("{0:0,0.00,00}", Model.Cost)