.net - MVC3 模型 DisplayFormat 和 JSON

标签 .net asp.net-mvc asp.net-mvc-3

我有一个模型,它有一些 double 属性,并且带有一个 DisplayFormat,它可以将 double 转换成一个很好的可读百分比.. 示例

[DisplayFormat(DataFormatString = "{0:P2}")]
public Nullable<double> Yearly_act_pct { get; set; }

这在我将调用包装在 HTML 部分中效果很好

@Html.DisplayFor(modelItem => item.Yearly_act_pct)

但是,当我将其中一些对象转储到 JSON 提要中时,DisplayFormats 似乎被忽略了,所以我最终得到的是原始小数,而且通常是大数。

我该怎么做

return Json(myObjects, JsonRequestBehavior.AllowGet);

尊重显示格式?

最佳答案

调用 return Json(myObjects, JsonRequestBehavior.AllowGet) 实际上返回一个 JsonResultJsonResult 的内部执行调用:

JavaScriptSerializer serializer = new JavaScriptSerializer();
response.Write(serializer.Serialize(Data));

如果您查看 JavascriptSerializer 的 MSDN你将有一个简单的转换。此实现似乎不支持 DisplayFormat。

您可以编写一个派生自 JsonResult 的类,该类支持 DisplayFormat 属性。

关于.net - MVC3 模型 DisplayFormat 和 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9537879/

相关文章:

c# - 如果 Html 文件没有结尾 "/tr"标记或 "/td"标记,则 HTML Agility Pack 无法完美读取该信息

c# - 有没有办法将 FileInfo 转换为 XmlDocument?

c# - 用于 C# 代码的 Pascal 大小写或 Camel 大小写?

c# - 添加 'HttpGet' 命名空间时找不到类型或命名空间名称 'System.Web.Http'

javascript - Razor 在使用 Javascript 时失败

c# - 在后台/异步任务中插入数据最好的方法是什么?

asp.net-mvc-3 - 基于存储在数据库中的 URL 的自定义 MVC 路由

c# - .NET Xml 序列化程序可选属性

javascript - 使用 MoSTLY JavaScript 时,MVC 是否更擅长管理复杂性?

asp.net-mvc - JsonResult 将特殊字符解析为\u0027(撇号)