Аннотации данных 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)