0

asp.net mvc 4、jquery、およびかみそりを使用しています。私は以下のカミソリステートメントを持っています:

@Html.HiddenFor(m => m.MyItemViewModel.id);

値が変更されたときに jquery/javascript 関数を呼び出す必要があります。そのため、hiddenFor razor タグの onchange イベントに jquery/javascript 関数をサブスクライブすることを考えましたが、それが可能かどうかはわかりません。

以下のコードを実装しましたが、OnHiddenValueChanged に到達していないため、機能しないようです。

@Html.HiddenFor(m => m.ItemCompViewModel.id, new { onchange="OnHiddenValueChanged" });

<script>
    function OnHiddenValueChanged() {
    }
</script>

または、m.ItemCompViewModel.id (ビュー モデルのアイテム) が変更されたときにビューから検出し、jquery/javascript 関数を呼び出す方法は?

何か案は?

4

1 に答える 1

3

onchangeサーバーで生成され、サーバーでのみ変更される値のクライアント側関数にサブスクライブしようとしているようです。したがって、このクライアント側関数がトリガーされないのは正常です。実際には、非表示フィールドの値を変更するために JavaScript を使用したことがないため、このコールバックが発生することは期待できません。

サーバー上の値を変更している場合、値が変更されたことをクライアントに伝えるのはサーバー次第です。たとえば、値が変更されたことを示す追加のプロパティをビューモデルに含めることができます (変更された.must は常に以前の状態と比較する必要があるため)。次に、クライアント側でこのプロパティを javascript 変数としてシリアル化して、サーバーで発生した変更をクライアント側で認識できるようにします。

于 2013-10-22T13:28:21.077 に答える