2010-12-07 11 views
1

私はPartialViewをロードするためにjQueryを使用しようとしています。これはページの最初の読み込み時にこの罰金を行います。しかし、私は、保存ボタンが押されたときに、PartialViewをリロードする必要があります。私はリロードを取得しますが、今回はPartialViewがすべて戻ってきます。私。 PartialViewは、メインページの一部として読み込まれるのではなく、独自のページとして読み込まれます。私は間違って何をしていますか?私は、それが実際に働いていたASP.NET MVC 2アプリケーションのjQueryからPartialViewをリロードしますか?

 $.get('<%=Url.Action("GetTasks", "Timesheet", new {id = DateTime.Today.ToShortDateString() }) %>', function (data) { 
      $('#tasksDiv').html(data); 
     }); //This part works fine on first load of the page 

     $('#savenewtask').click(function (event) { 
      event.preventDefault(); 
      $.get('<%=Url.Action("GetTasks", "Timesheet", new {id = DateTime.Today.ToShortDateString() }) %>', function (data) { 
       $('#tasksDiv').html(data); 
      }); 
     }); //This only loads the PartialView, but not as part of the main page... 

ボタンでロードするためのdiv:

<p> 
     <input type="button" value="Spara" id="savenewtask" /> 
    </p> 

<div id="tasksDiv"> 
</div> 

UPDATEここ

は、ビュー内のjQueryの関連する部分です私はページ上にある2つの入力フィールドをちょうど混同していました。しかし、私は簡単な質問に言い換えて言います:これはPartialViewsでこのようなことをする最善の方法ですか、別の方法で取り組むべきですか? (私は、それが "ベストプラクティス"なのかどうかわからずに、自分が望むものを達成する方法を見つけようとしていました)。

+2

「#tasksDiv」はページに複数回表示されますか?私はあなたがあなたが答えを受け入れないで購入するのを手伝いたいと思っています... – hunter

+0

上記の更新を参照してください。本当に?私は可能な限り回答を受け入れるよう努めています。もちろん、時には私はいくつかの質問に有益な答えを得ていないし、するべきことがあまりありません、そこにありますか? – Anders

答えて

0

私は通常、innerHtmlを設定するloadメソッドを使用しました。

var url = '<%=Url.Action("GetTasks", "Timesheet", new {id = DateTime.Today.ToShortDateString() }) %>' 
$("#tasksDiv").load(url); 
+0

申し訳ありませんが、私の間違いは、私は2つの入力フィールドを混乱させました。それは実際に正常に動作します。しかし、私は自分の質問を言い換えて答えを受け入れます。上記の更新を参照してください。 – Anders

+0

私は常に最小限の抵抗のパス '.load()'を提供します。デリゲート/コールバックの必要はなく、構文がより明確に読み取られます。 "このdivをとり、このURLの内容を読み込みます。" get +コールバックを行うことに何も問題はありません。私はちょうどそれがより多くのコードを必要とするのを見たしかし、簡単な '.load()'呼び出しの上で必要な場合があります。たとえば、表示する前に戻り値を処理したいとしたら... – Nate

関連する問題