1

我想知道实现以下内容的最简单方法是什么 -

我有一个文本框,用户可以输入百分比,该数字必须存储为除以 100。

示例:如果用户输入文本框 45.2,这将作为 .452 存储在数据库中。

在 MVC C# 应用程序中实现这一点的最简单方法是什么?

我在模型上有一个PercentDisplay属性和一个Percent属性。当模型返回控制器时,我除以PercentDisplay100 并将结果放入Percent中,但我想在没有额外属性的情况下执行此操作。

有什么建议么?有没有办法在视图中处理这个?

谢谢!

4

2 回答 2

2

这里有 3 层和 2 个边界。

  1. 视图控制器
  2. 控制器模型

您应该从视图中的用户那里收到 45.2 的值。然后这将作为 45.2 到达控制器。

在控制器中,您应该将其转换为 0.452(使用辅助业务逻辑类)或通过模型将 45.2 发送到数据库以存储为 0.452。

您不应该在视图中处理转换。想象一下,如果您有超过 1 个视图。您将多次进行转换。这违背了目的。

于 2013-04-22T15:36:07.103 回答
0

您可以更改属性的get操作Percent以进行强制转换和除法而不进行set操作。我无法真正为您提供示例,因为您没有提供执行转换和除法的代码。

另一方面,这里有一个例子:

public decimal Percent
{
    get
    {
        var p = decimal.Parse(PercentDisplay);
        return p / 100;
    }
}

您可能想要包装解析,甚至可能使用它TryParse来确保安全。

于 2013-04-22T15:20:56.043 回答