Работает на double
.Как вы отображаете / отображаете это?Тривиальный образец ниже
Модель
public class SampleViewModel
{
public string Name {get; set;}
[DisplayFormat(DataFormatString = "{0:C2}", ApplyFormatInEditMode = true)]
public double Price {get; set;}
}
Контроллер
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
return View(new SampleViewModel(){Name = "Item 1", Price = 2.99});
}
}
Вид
<div>
<!-- In an text input field -->
<p>@Model.Name : @Html.EditorFor(m => m.Price)</p>
<!-- As text -->
<p>@Html.DisplayFor(m => m.Price)</p>
</div>
Hth
Обновление:
Как следует из названия атрибута, DisplayFormat , оно Указывает, как поля данных отображается и форматируется (выделено мое)
Вы возвращаете данные (JSON), клиенту будет отображать и форматировать это соответственно.Возвращенные данные не изменяются - символ валюты делает это значение string
.
Если это ваше намерение, возвращая string
версию числового значения, затем настройте model
, чтобы вернуть string
.Вы можете отформатировать его так, как считаете нужным (вручную).ИМХО, это было бы нецелесообразно (хотя я понятия не имею, каковы ваши намерения, так что, опять же, это только мое мнение).