【发布时间】:2019-04-30 10:00:27
【问题描述】:
我正在使用 ASP MVC 5 和 DataTables 插件,但在格式化小数时遇到了一些问题。
我需要用点作为千位分隔符和逗号作为小数分隔符来格式化数字。
我正在尝试使用DisplayFormat 来做这件事,但由于我将数据作为 Json 返回,所以它只是不适用
这是我的问题的一个小例子
public class MyClass
{
[DisplayFormat(DataFormatString = "{0:0.##}")]
decimal MyDecimal {get;set;}
}
在控制器中
public JsonResult LoadDataTables()
{
using(var db = new ExampleContext())
{
var data = db.MyRepository.Select(x => new MyClass
{
MyDecimal = x.mydecimal
}).ToList();
//i'm ignoring a lot of processing to create a short snippet
return Json(new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = data });
}
}
然后,在前端,json以逗号表示千位,点表示小数分隔
我该如何处理?有什么方法可以申请CultureInfo或者手动设置转换?
编辑:在我看来,这就是我加载数据的方式
var table = $('#myTabla').DataTable({
processing: true,
serverSide: true,
filter: true,
orderMulti: false,
paging: true,
pageLength: 10,
ajax: {
"url": '@Url.Action("LoadDataTables")',
"type": "POST",
"datatype": "json",
});
谢谢!
【问题讨论】:
-
朋友,您能在 View 中显示您的代码吗?
-
这里是 ToString() 输出格式的文档:docs.microsoft.com/en-us/dotnet/standard/base-types/…。您可以应用 CultureInfo 进行输出。
-
@Tomato32 添加了我如何加载数据,我的视图只有一个表,基本上是那个脚本
-
@Shim-Sao 问题是我必须在哪里应用它?
DisplayFormat注释永远不会发生 -
@JuanSalvadorPortugal 你的 JSON 很好。使用点是 JSON 中数字的事实标准。是你 DataTable 配置应该指定小数字段如何显示
标签: c# json asp.net-mvc asp.net-mvc-5 datatables