2012-12-30 11 views
17

Bir ASP.Net sayfasına aşağıdaki jQuery AJAX çağrısına sahibim.jQuery AJAX Veriyi ASP.Net sayfasına gönderme çağrısı (Get ama POST değil)

   $.ajax({ 
       async: true, 
       type: "POST", 
       url: "DocSummaryDataAsync.aspx", //"DocSummary.aspx/GetSummaryByProgramCount", 
       contentType: "application/json; charset=utf-8", 
       data: kendo.stringify({ vendorId: supplierId, businessUnit: busUnit, productSegmentId: prodSegmentId, programId: progId, productManagerId: prodManagerId, companyIds: compIds, expired: exp.toString(), requestType: 'TotalCount' }), 
       success: function (msg) { 
        // alert('in success of getcount'); 

       }, 
       error: function (XMLHttpRequest, textStatus, errorThrown) { 
        // alert('in failure of getcount'); 


       } 
      }); 

İletilen verilerden Request nesnesinden almaya çalıştığımda, bu görünmez. Aspx sayfa kodum aşağıdaki gibidir. Gönderilen her bir veriyi Json biçiminde sayfaya gönderiyorum, ancak sayfanın arkasında görünmüyor. JQuery ajax çağrısında eksik olduğum bazı ek ayarlar var mı?

protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.ContentType = "application/json"; 

     string requestType = Request.Params["requestType"]; 


     //populate variables from posted data 
     string vendorId = Request.Params["vendorId"]; 
     string businessUnit = Request.Params["businessUnit"]; 
     string productSegmentId = Request.Params["productSegmentId"]; 
     string commitmentProgramId = Request.Params["programId"]; 
     string productManagerId = Request.Params["productManagerId"]; 
     string companyIds = Request.Params["companyIds"]; 
     string expired = Request.Params["expired"]; 
    } 

GÜNCELLEME 1: Stephen cevabı bu en iyi yaklaşım, ProcessRequest yapar özellikle yaklaşımdır. Ancak, her zamanki gibi geleneksel bir şekilde ASP.Net'e gönderilmesini sağlayan küçük bir hile buldum. Örneğin, Request ["vendorId"] vb. Gibi herhangi bir jQuery ajax isteğindeki verilerin bu şekilde yayınlanmasını sağlamak için aşağıdaki 2 puan jQuery ajax arama uygulanır emin olun:

content-type, o zaman eklemek istiyorsanız Yoksa set edilmemelidir jQuery ajax arama dışına bırakılması gerektiğini
  1. "application/json; charset = utf-8" e kadar, ancak "application/x-www-form-urlencoded; charset = UTF-8". İçerik türü, benim anladığım kadarıyla ASP.Net sayfasına, sayfadan beklenen veri türünü değil, gönderilen veri türünü anlatıyor.
  2. jQuery ajax 'un veri parçası, fiyat teklifleriyle eklenmiş veri adlarına sahip olmamalıdır. Dolayısıyla veriler: {"venorId": "AD231", "businessUnit": "123"} verileri şu şekilde değiştirilmelidir: {vendorId: "AD231", businessUnit: "123"}. Bu örnekte, veri adları, ASP.Net kodunuzda, Request ["vendorId"] ve Request ["businessUnit"] gibi alışılmış ASP.Net sözdizimi kullanılarak erişilebilen vendorId ve businessUnit'dir.
+0

Bu şekilde denedim, bir şey benim için işe yaramıyor. Biri bana yardım edebilir mi. – user1120998

cevap

İlgili konular