我有一个模型,它有一些 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)
实际上返回一个 JsonResult
。 JsonResult
的内部执行调用:
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/