KnockoutMVC 2.10, MVC 4.0, c# 5.
从主站点的一个示例中工作(子模型中的计算字段)。我有一个问题,想知道是否有人可以帮助。在下面的代码中,计算的Message字段根据分别与Caption和Value相关联的两个文本框进行更新。然而,只要我取消注释第二个[Computed]属性,没有对视图(或任何其他代码)进行任何其他更改,它就会停止工作。顺便说一句,在同一个项目中,在主模型中,我尝试了2个计算字段,它们工作得很好。这是子模型的限制(即只允许一个计算字段)吗?
谢谢Rob
public class InnerComputedSubModel
{
public decimal Caption { get; set; }
public decimal Value { get; set; }
public decimal Caption2 { get; set; }
public decimal Value2 { get; set; }
[Computed]
public decimal Message
{
get { return Caption * Value; }
}
//[Computed]
public decimal Message2
{
get { return Caption2 * Value2 * 20; }
}
}
public class InnerComputedModel
{
public InnerComputedSubModel SubModel { get; set; }
}
KnockoutMVC确实支持多个Computed
属性,但是在Computed
属性中使用decimal
值时存在一些bug。
一个可能的解决方案是不使用decimal
s在你的Computed
,但float
或double
没有JavaScript等效的c# decimal
类型。
public class InnerComputedSubModel
{
public double Caption { get; set; }
public double Value { get; set; }
public double Caption2 { get; set; }
public double Value2 { get; set; }
[Computed]
public double Message
{
get { return Caption * Value; }
}
[Computed]
public double Message2
{
get { return Caption2 * Value2 * 20; }
}
}