2012-01-02 30 views
0

這裏是我的AJAX調用:如果(response.Success)條件是永遠不會滿足

 $(document).ready(function() { 
     $("#btnSignup").click(function() { 
      $.ajax({ 
       type: "POST", 
       dataType: 'json', 
       url: "/Newsletter/Signup", 
       data: $('#signupForm').serialize(), 
       success: function (response) { 
        if (response.Success) { 
         $('#signupMessage').show(0); 
        } 
        else { 
         showValidationErrors(response.Data); 
        } 
       } 
      }); 
      return false; 
     }); 

這裏是我的控制器:

[HttpPost] 
    public JsonResult Signup(FormCollection values) 
    { 
     var newsletterSubscriber = new newsletterSubscriber(); 
     TryUpdateModel(newsletterSubscriber); 

     try 
     {    
      newsletterSubscriber.newslettersubscriber_firstname = values["firstName"]; 
      newsletterSubscriber.newslettersubscriber_lastname = values["lastName"]; 
      newsletterSubscriber.newslettersubscriber_email = values["emailAddress"];  

      //Save Subscriber 
      wildlifeDB.AddTonewsletterSubscribers(newsletterSubscriber); 
      wildlifeDB.SaveChanges(); 

      //return RedirectToAction("Index"); 
      return Json(new { result = "success" }); 

     } 
     catch 
     { 
      //Invalid - redisplay with errors 
      //return View("Index"); 
      return Json(new { result = "failure" }); 

     } 
    } 

爲什麼我的AJAX調用的條件,「如果(響應.Sucess)「永遠不會滿足。我可以看到數據正在進入數據庫?

回答

1

您正在返回一個如下所示的JSON對象:{ result: "success" },但在您的客戶端代碼中,您正在檢查名爲Success的屬性。這不起作用,因爲返回的對象不包含名爲Success的屬性。

您的代碼應該檢查if (response.result === 'success')。這應該工作。

爲了使檢查更漂亮,我通常會返回一個看起來像{ success: true }的對象。在這種情況下,代碼可以寫爲if (response.success),這在眼睛上更容易。

+0

謝謝!非常感謝你的幫助。 – user1125648 2012-01-02 03:57:16