MVC C#应用程序,文本框百分比与数据库保存百分比

时间:2013-04-22 15:14:12

标签: c# asp.net-mvc

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

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

实施例: 如果用户进入文本框45.2,则将其作为.452存储在数据库中。

在MVC C#应用程序中实现此功能的最简单方法是什么?

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

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

谢谢!

2 个答案:

答案 0 :(得分:2)

这里有3层和2个边界。

  1. 视图 - 控制器
  2. 控制器 - 模型
  3. 您应该从View中的用户那里收到45.2的值。然后这将以45.2的形式到达控制器。

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

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

答案 1 :(得分:0)

您可以更改get属性的Percent操作来执行强制转换和除法操作,而不是set操作。我真的不能为你提供一个例子,因为你没有提供进行投射和分割的代码。

另一方面,这是一个例子:

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

你想要包装解析,甚至可以使用TryParse代替,以确保安全。