4

ajax を介して部分ビューを呼び出す必要があります。次のことを試しましたが、それを完了する方法がわかりません。

$("#UserName").change(function () {
        var userid = $("#UserName").val();
        var ProvincialStateID = $("#State").val();
        var Hobbyid = $("#Hobby").val();
        var Districtid = $("#DistrictNames").val();
        var Homeid = $("#Hobbyhome_EstablishmentId").val();
        var urlperson = '@Url.Action("FetchPersonByUserName")';
        $.ajax({
            type: "POST",
            url: urlperson,
            data: { userid: userid, stateid: ProvincialStateID, hobbyid: Hobbyid, districtid: Districtid, homeid: Homeid },
            success: function (data) { 
           //Dont know what to write here
        });
    });

コントローラーに記述した関数は次のとおりです。

 [HttpPost]
    public ActionResult FetchPersonByUserName(int userid,int stateid,int districtid,int homeid,int Hobbyid)
    {
      //Code to fetch the data in the partial using all parameters
      return PartialView("_LearnerAssociationGridPartial", list);
    }

ドロップダウンをクリックすると ajax が呼び出され、ajax を介して呼び出される関数を部分ビューにリダイレクトする必要があります。現在、部分ビューを表示できないため、助けてください

4

2 に答える 2

4

必要なのは次のようなものです

$.ajax({
   type: "POST",
   url: urlperson,
   data: { userid: userid, 
           stateid: ProvincialStateID, 
           hobbyid: Hobbyid, 
           districtid: Districtid, 
           homeid: Homeid },
    success: function (data) { 
          var result = data; 
          $('targetLocation').html(result);
    }
   });

変数から直接データを使用しないことをお勧めしますが、可能です。ターゲットの場所は、結果を表示する場所です。

詳細については、次を参照してください。

http://api.jquery.com/jQuery.ajax/

データのフェッチが遅い場合は、クエリを最適化してみてください

更新 nhibernate の実行が遅い場合は、有料版の nhibernate プロファイラーであるhttp://www.hibernatingrhinos.com/products/nhprofを試すか、SQL プロファイラーを試して、実行されているクエリを確認してください。クエリの複雑さのために、クエリが予想されるか、または実際に遅くなります。

于 2012-05-03T12:26:55.573 に答える
3

部分ビューにリダイレクトするという意味がわかりません。通常、人々は ajax と部分ビューを使用して、ページを更新せずにページの一部を取得します (このサイト/facebook/twitter などでこの種の動作を見たことがあるかもしれません)。現在のページの一部に非同期的に表示されます。成功ハンドラでそれを行うことができます

$.ajax({
        type: "POST",
        url: urlperson,
        data: { userid: userid, stateid: ProvincialStateID, hobbyid: Hobbyid, districtid: Districtid, homeid: Homeid },
        success: function (data) { 
          $("#divUserInfo".html(data);
        }
 });

現在のページに id を持つ div があると仮定divUserInfoします。

本当に ajax 投稿の後にリダイレクトしたい場合は、次のようにできます。

$.ajax({
        type: "POST",
        url: urlperson,
        data: { userid: userid, stateid: ProvincialStateID, hobbyid: Hobbyid, districtid: Districtid, homeid: Homeid },
        success: function (data) { 
          window.location.href="Why-I-need-Ajax-Then.php";
        }
 });

個人的には、HttpPost(クライアントとサーバーの両方で)それがGETデータへのメソッドである場合は使用しません。jquery get または load を使用するだけです。

$.get("yourUrl", { userid: userid, stateid: ProvincialStateID } ,function(data){
  $("#divUserInfo".html(data);
});
于 2012-05-03T12:22:26.573 に答える