gpt4 book ai didi

c# - 格式化十进制 JsonResult ASP MVC 5

转载 作者:太空宇宙 更新时间:2023-11-03 22:38:49 25 4
gpt4 key购买 nike

我正在使用 ASP MVC 5 和 DataTables插件,我在格式化小数时遇到了一些问题。

我需要用点作为千位分隔符和逗号作为小数点分隔符来格式化数字。

我正在尝试使用 DisplayFormat 来实现它,但由于我将数据作为 Json 返回,所以它不适用

这是我的问题的一个小例子

public class MyClass
{
[DisplayFormat(DataFormatString = "{0:0.##}")]
decimal MyDecimal {get;set;}
}

在 Controller 中

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",
});

谢谢!

最佳答案

您可以为此使用 Number 助手。您可以访问此链接以引用更多信息:https://datatables.net/manual/data/renderers#Number-helper

这是一个例子。希望能帮到你,我的 friend :))

// Controller 中的代码

public class Test
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Currency { get; set; }
}

private List<Test> Data()
{
var data = new List<Test>
{
new Test{ Id = 1, Name = "A1", Currency = 1000000.00M},
new Test{ Id = 2, Name = "A2", Currency= 50000000.12M},
new Test{ Id = 3, Name = "A3", Currency = 3000000.45M},
new Test{ Id = 4, Name = "A4", Currency = 20000}
};
return data;
}

[HttpPost]
public JsonResult LoadDataTables()
{
var data = Data();
var recordsTotal = Data().Count;
var recordsFiltered = Data().Count();
string draw = Request.Form.GetValues("draw")[0];
return Json(new { draw = Convert.ToInt32(draw), recordsTotal = recordsTotal, recordsFiltered = recordsFiltered, data = data }, JsonRequestBehavior.AllowGet);
}

// View

<table id="myTable" >
<thead>
<tr>
<td >Id</td>
<td >Name</td>
<td>Currency</td>
</tr>
</thead>
<tbody>
</tbody>
</table>

var table = $('#myTable').DataTable({
processing: true,
serverSide: true,
filter: true,
orderMulti: false,
paging: true,
pageLength: 10,
ajax: {
"url": '@Url.Action("LoadDataTables", "Home")',
"type": "POST",
"datatype": "json",
},
"columns": [
{
"data": "Id"
}, {
"data": "Name"
}, {
"data": "Currency",
render: $.fn.dataTable.render.number('.', ',', 2, '')
}
]
});

关于c# - 格式化十进制 JsonResult ASP MVC 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53520396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com