2011-07-12 9 views
0

JQuery $ .Ajaxコールバックを実行する必要があるMVC 3ページの一部に来ていますが、以前とは異なり、単純な値が返され、JQueryを使用してUIの更新が処理されました。メインのViewModelデータを表示するページの一部をリフレッシュする必要があります。したがって、実際にはコールバックを行う必要があるかのようになりますが、JSonResultを返す代わりに元のViewを返すのですか?私は部分的なビューを使うことを考えなければならないとは思っていますが、かなり確信していますか?誰も助言したり、良いチュートリアルに向けて私を指摘することができますか?部分図の使用方法

ありがとうございます。

+0

これで、完全なビューを取得し、jQueryを使用してアクションを再度呼び出し、HTMLのセクションを同じビューの部分的なバージョンに置き換えますか? – robmzd

+0

はい、本当に自己説明的なものです。ありがとう。 – MaRk

答えて

2

私は正しく理解しています。この種のシナリオでは、通常、同じアクションを再利用しますが、IsAjaxRequestメソッドに基づいて完全または部分ビューのいずれかを返します。

public ActionResult MyAction(string someParam) 
    { 
     //... 

     if (Request.IsAjaxRequest()) 
     { 
      return PartialView(model); 
     } 
     else 
     { 
      return View(model); 
     } 
    } 

これは、その後のようなものを使用してjQueryの中で呼び出すことができます。

$("a.myAction").click(function (event) 
{ 
    event.preventDefault(); 
    var button = $(this); 

    // Get more results using ajax 
    $.get(button.attr("href"), function (data) 
    { 
     // Add the new content 
     $('div#myActionResult').empty().html(data); 
    }, "html"); 
} 

あなたがアクションにデータを送信したい場合は、代わりにPOSTまたはクエリ文字列が含まれるようにURLを変更する必要があるかもしれませんビューを変更します。

+0

この例では正しく理解していません。私はちょうどモデルだけでControllerアクションメソッドからPartialViewを返すことに気付きました、どのようなPartialViewを再レンダリングしたいのですか? – MaRk

+0

コントローラーとアクションの名前に基づいて決定します(ビューを追加すると、コントローラーと一致するフォルダーに配置され、アクション名がビューの名前として使用されます)。必要に応じて、View/PartialViewメソッドに文字列引数を追加して、ビュー名を指定することもできます。 – robmzd

+0

はい、それはrobmzdです。それは今歓声を得た; – MaRk

関連する問題