我想知道实现以下内容的最简单方法是什么 -
我有一个文本框,用户可以输入一个百分比,该数字必须存储为除以100。
实施例: 如果用户进入文本框45.2,则将其作为.452存储在数据库中。
在MVC C#应用程序中实现此功能的最简单方法是什么?
我在模型上有PercentDisplay
属性和Percent
属性。当模型返回到控制器时,我将PercentDisplay
除以100并将结果放入Percent
,但我想在没有额外属性的情况下执行此操作。
有什么建议吗?有没有办法在视图中处理这个?
谢谢!
答案 0 :(得分:2)
这里有3层和2个边界。
您应该从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
代替,以确保安全。