2

淘汰赛MVC 2.10、MVC 4.0、C# 5。

使用主站点上的示例之一(子模型中的计算字段)。我遇到了问题,想知道是否有人可以提供帮助。在下面的代码中,计算的 Message 字段会根据分别与 Caption 和 Value 关联的两个文本框进行良好更新。但是,一旦我取消注释第二个 [Computed] 属性,并且对视图(或任何其他代码)没有其他更改,它就会停止工作。顺便说一句,在同一个项目中,在主模型中,我尝试了 2 个计算域,它们运行良好。这是子模型的限制(即只允许一个计算字段)吗?

谢谢罗伯

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; }
}
4

1 回答 1

2

KnockoutMVC 确实支持多个属性,但是在使用属性内的值Computed时它有一些错误。decimalComputed

一种可能的解决方法是不要decimal在您的Computedfloatdouble没有与 C#decimal类型等效的 JavaScript 中使用 s。

所以下面的代码应该可以正常工作:

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; }
    }
}
于 2013-06-09T13:47:05.107 回答