преобразование из типа double в валюту с использованием аннотации данных - PullRequest
0 голосов
/ 10 июня 2019

Я создаю диаграммы c3 и хочу изменить формат данных.Есть ли способ конвертации двойных в формат расходов

public ActionResult FlugBarSpend()
        {
            DataModel db = new DataModel();
            var test = db.Database.SqlQuery<FlugBarSpendData>("exec sp_FlugBarSpend").ToList();
            return Json(test, JsonRequestBehavior.AllowGet);

        }

        public class FlugBarSpendData
        {
            public int Month { get; set; }

            [DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = true)]
            public double Spend { get; set; }

        }

1 Ответ

1 голос
/ 10 июня 2019

Работает на 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.Вы можете отформатировать его так, как считаете нужным (вручную).ИМХО, это было бы нецелесообразно (хотя я понятия не имею, каковы ваши намерения, так что, опять же, это только мое мнение).

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