使用数据注释从double类型转换为货币

时间:2019-06-10 00:14:00

标签: c# asp.net asp.net-mvc entity-framework

我正在创建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 个答案:

答案 0 :(得分:1)

它适用于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>

高度


更新:

正如属性名称所暗示的那样, DisplayFormat ,它指定如何显示和格式化数据字段 (重点是)

您要返回数据(JSON),这取决于客户端正确地显示和格式化。返回的数据不会更改-货币符号使该值成为string

如果这是您的意图,则返回数字的string版本,然后调整model以返回string。您可以按自己认为合适的方式对其进行格式化(手动)。恕我直言,这是不可取的(尽管我不知道你的意图是什么,所以再次,这只是我的意见)。