1

_Layout.cshtmlに含めた部分的なビューがあります。システムの状態に基づいて画像を変更するjavascript関数があります。データをリロードする必要はありません。コントローラーのコードに移動する必要もありません。その部分的なビューをリロードするだけです。

ここで見つけた例の多くを試しましたが、どれも機能しませんでした。とにかく私がやっていることには複雑すぎるように感じました。任意のガイダンスをいただければ幸いです。

ありがとう、

スティーブ

4

2 に答える 2

6

パーシャルがレイアウトに直接ロードされた場合、基本的に完全なレンダリングされたページの一部であるため、それを更新する簡単な方法はありません。

あなたの最善の策は$.load、コントローラーメソッドをヒットし、結果をコンテナー (div など) にレンダリングすることによって、部分的な使用または利用可能な同等のものをレンダリングすることです。観察などによって、レイアウト自体がロードされたスクリプト内でこれを行う必要がありますdocument.ready。それができたら、コントローラーメソッドを必要な回数だけ押して、コンテンツをリロードまたは更新し続けるのは簡単です。たとえば、jQuery では次のようになります。

$(document).ready(function () {
    RefreshPartial();
    window.setInterval(RefreshPartial, 10000);
});

function RefreshPartial() {
    $('#container').load('/some/controller/endpoint', {parameters});    
}

これにより、コントローラ メソッドが呼び出され、 で識別される要素の内部コンテンツが設定され#containerます。RefreshPartial何度でも電話をかけることができます。

于 2012-01-23T19:04:44.140 に答える
1

部分ビューはサーバー上にのみ存在します。パーシャルを「リフレッシュ」する唯一の方法は、サーバーに戻って再度取得することです。

明らかに、更新が必要なパーシャルで何かをしているに違いありません。それが何であれ、更新を行うためにjavascriptから呼び出すことができるはずです。

于 2012-01-23T19:10:50.347 に答える