2010-05-14 18 views
21

jQuery ile ASP.NET MVC kullanıyorum. Başarıda kısmi bir sayfa döndüren aşağıdaki MVC Eylemim var. Uygulama Hatası, ben doğru istemci tarafında bunu işlemek için göndermek ne emin değilim:Ajax senaryosunda bir hata nasıl döndürülür

public ActionResult LoadFilterSet(int filterSetId) 
{ 
    try 
    { 
     BreadCrumbManager bcManager = this.ResetBreadCrumbManager(this.BreadCrumbManagerID); 
     GeneralHelper.LoadBreadCrumbManager(bcManager, filterSetId); 

     ViewData["BreadCrumbManager"] = bcManager; 
     return View("LoadFilterSet"); 
    } 
    catch (Exception ex) 
    { 
     return Content(""); 
    } 
} 

ardından benim jQuery ajax çağrıdır. Hata olmadığından emin olmak için veri uzunluğunu kontrol ettiğime dikkat edin. Lütfen bunu yapmanın daha iyi bir yolunu öner. veri sahte değilse

$.ajax({ 
    type: "GET", 
    dataType: "html", 
    async: true, 
    data: ({ filterSetId: selectedId }), 
    url: link, 
    contentType: "text/html; charset=utf-8", 
    success: function(data, textStatus) { 
     if (data.length > 0) { 
      // Clear the local filters first. 
      clearLocalFilters(); 
      $('td.selected-filters table.filters-display').append(data); 
     } 
    } 
}); 

cevap

32

ben bir hata fonksiyonu eklersiniz bir hata atılır eğer return Content(false.ToString().ToLower()); yapabilirsiniz düşünmek ve sonra kontrol senin ajax çağrısı kurulumu. Sunucu, ajax hata işleyicisini görüntülemek ve iletmek için hata mesajını belirleyip görüntülemesine izin verin. senin kontrolörün eylem olarak

success: function(data, textStatus) {  
    // Clear the local filters first.  
    clearLocalFilters();  
    $('td.selected-filters table.filters-display').append(data);   
}, 
error: function (data) { 
    alert(data.responseText); // use any display logic here 
} 

bir hata

Response.StatusCode = (int)HttpStatusCode.BadRequest; 
return Content(errorMessage, MediaTypeNames.Text.Plain); 
+0

hile yapar. Bu cevabı sevdim. – mohang

+0

'İçerik' türü nedir? Dokümanlarda göremiyorum. Tüm gördüğüm, bir ContentCode, 'HttpStatusCodeResult' hatası almayan bir html sayfası ve' System.Web.UI.WebControls.Content 'hatalarını tamamıyla kapatan 'ContentResponse'. – roo2

1

Ben

if(data != false) 
{ 

    //do stuff 
} 

veya

if(!data) 
    alert("Error"); 
else 
{ 
    //do stuff 
} 
+0

Merhaba Knepe bulunursa, bu ben başarı işlevinde ne yapıyorum ya da çok azdır. Bu sadece bir arıza durumuna izin verir. Eğer başarısızlık için uygun bir sebep vermek istiyorsam, bu yöntemi kullanarak bunu zarif bir şekilde yapamayacağım. Ajax hatasını tetikleyen – mohang

İlgili konular