2010-12-31 3 views
0

私はDataProgressと呼ばれるビューを持っています。ブラウザに表示されているときに、10秒ごとにそれを生成したのと同じアクションを再開します。私のアクションはコントローラMyControllerのDataProgressです。MVC 2で私は10秒ごとにアクションを起こしたい

私は以下のことを試みましたが、それは数秒(10秒ではありません)を実行し、ブラウザには何も表示されません。

<script> 
    $(document).everyTime(10000, function() { 
    <% Html.Action("DataProgress");%>; 
    }, 100); 
</script> 

JD

答えて

3

<%のHtml.Action(「DataProgress」);%>ビューが実行されたときONCEアクションをレンダリングするために、あなたが配置場所に結果を挿入することではなく、何もしませんアクションコマンド。

つまり、Html.Actionはサーバー側のコマンドです.Javascriptコードで呼び出すことはできません。

$.ajax()または同様のjQueryメソッド(必要に応じてloadおよびgetJsonも機能する場合があります)を使用して、ページを適切に更新する必要があります。

+0

こんにちはエイドリアン、私は欲しいのは、ページ全体をフェッチすることです、そのページを生成したアクションは、自分自身から再度呼び出さなければなりません(私はHTMLでmetaタグを見て覚えています。欲しいです)。ページの一部をajaxで更新するのではなく、アクションを実行してこれを行うことはできますか? –

+0

@JD:$ .ajax()は、常にクライアント側からサーバー側のアクションを実行します(あなたの言葉では:発生)。あなたが結果とすること(またはしない)は無関係です。そう、はい、これを行うことができます。この場合、おそらくあなたの行動方法に応じて、$ .getまたは$ .postを使いたいでしょう。 $ .ajaxもうまく動作しますが、もう少し冗長です。 –

+0

アドリアンに感謝します。それは完璧に働いた。間違ったフォルダに私の部分的な見解がありましたが、それは助けにはなりませんでしたが、ajax呼び出しへの切り替えは完全に機能します。 –

関連する問題