【发布时间】:2016-11-05 23:12:11
【问题描述】:
在我的 MVC5 应用程序中,我在模型的一个属性上设置了这个 DisplayFormat 属性。它确保我的双精度值“TotalPrice”始终在屏幕上以两位小数呈现(在 Razor 页面中)
[DisplayFormat(DataFormatString = "{0:N2}")]
public Double? TotalPrice { get; set; }
我试图弄清楚如何从我的控制器(C# 代码)中调用相同的逻辑。所以像:
return DataFormatAttribute.ApplyFormattingTo(shoppingCart.TotalPrice);
这显然远不正确,但我希望它有助于澄清问题。我对 2 位小数的具体示例并不感兴趣,更多的是如何在 C# 中自己将属性的行为应用于值。
我已经下载了 MVC5 源代码,但它对我来说太抽象了。
感谢您提供的任何帮助。
【问题讨论】:
-
您是否打算将格式化后的值返回给视图或数据库/存储?我正在尝试理解其目的。
-
只是编辑我的问题以尝试澄清。我需要在我的 C# 代码中做任何事情,无论 MVC5 框架在将值渲染到小数点后 2 位时为我做了什么。忍受我...
-
你到底想要这个做什么?您只需要格式化显示在视图中的值(这是您的
DisplayFormatAttribute所做的) 为什么需要从我的控制器中调用相同的逻辑? -
因为我有一种方法可以返回原始值,例如3.9 作为 ajax 请求的 Json 结果,因此它不会像模型值一样呈现。在我发回之前,我可以自己将它渲染到 3.90,但我希望能够连接到属性的功能。然后,如果我改变了显示逻辑,我只需要在一个地方改变它。另外,我对这些属性在幕后的实际工作方式很感兴趣。
标签: c# asp.net-mvc-5