2

ノックアウトMVC 2.10、MVC 4.0、C# 5.

メイン サイトの例の 1 つから作業します (サブモデルの計算フィールド)。私は問題を抱えており、誰かが助けてくれるかどうか疑問に思いました. 以下のコードでは、Caption と Value にそれぞれ関連付けられた 2 つのテキスト ボックスに基づいて、計算された Message フィールドが正常に更新されます。ただし、ビュー (または他のコード) に他の変更を加えずに、2 番目の [Computed] 属性のコメントを外すとすぐに、動作が停止します。ちなみに、同じプロジェクトで、メイン モデルで 2 つの計算フィールドを試してみましたが、うまくいきました。これはサブモデルの制限ですか (つまり、計算フィールドは 1 つしか許可されません)?

ありがとうロブ

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

考えられる回避策の 1 つは、C#型に相当する JavaScript がない場合decimalに s を使用しないことです。Computedfloatdoubledecimal

したがって、次のコードは正常に機能するはずです。

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 に答える