KnockoutMVC子模型中的多个Compute字段



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,但floatdouble没有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; }
    }
}

相关内容

  • 没有找到相关文章

最新更新