2012-06-22 96 views
2

嗨,大家好我張貼一些數據使用jQuery阿賈克斯的控制器,但我在我的控制越來越空值,JQUERY AJAX從MVC視圖傳遞null值控制器

的jQuery代碼:

$('#registerCompOff').click(function() { 

    var compOff = []; 
    $('div').each(function() { 
     var curRow = {}; 
     curRow.Description = $(this).find('.reason').val(); 
     curRow.CompOffDate = $(this).find('.datefieldWithWeekends').val(); 
     if (curRow.Description != null && curRow.CompOffDate != null) { 
      compOff.push(curRow); 
     } 
    }); 
    $.ajax({ 
     type: 'POST', 
     url: this.href, 
     dataType: 'json', 
     data: compOff 

    }); 

    return $('form').valid(); 

});​ 

compOff不是null我已經檢查了......

控制器:

[HttpPost] 
     public ActionResult RegisterCompOff(RegisterCompOff[] registerCompOff) 
     { 

      //return View(); 
     } 

你能告訴我我要去哪裏嗎?

+0

//稍後編輯:他是正確的,創建一個鍵/值列表,並在控制器中的參數作爲密鑰 –

+0

我發送一個數組..我叫我在控制器中指定... –

+0

我已編輯我的post.check。 –

回答

3

給定您的原始代碼,更改$ .ajax - >data: JSON.stringify(compOff)然後添加contentType: "application/json; charset=utf-8",最後將控制器的參數名稱更改爲public ActionResult RegisterCompOff(RegisterCompOff[] compOff)
模型綁定應該啓動。它爲我做了。

0

您傳遞JavaScript對象作爲數據,其中jquery ajax方法期望鍵/值對列表。 試試這個

data:{Description:compOff.Description, CompOffDate:compOff.CompOffDate} 
+0

對不起,錯過了這一點,compOff是一個數組和ur期待在動作 – ZafarYousafi

+0

陣列,然後我把這些javascript對象包裝在一個數組中...我有多個對象 –

1

編輯:

試試這個:

$.ajax({ 
     type: 'POST', 
     url: this.href, 
     dataType: 'json', 
     traditional: true, 
     data: 
     { 
      CompOffList: compOff 
     } 
    }); 

,改變你的控制器是這樣的:

[HttpPost] 
     public ActionResult RegisterCompOff(List<RegisterCompOff> CompOffList) 
     { 

      //return View(); 
     } 

希望這有助於

+0

很好地添加此內容類型給我網絡錯誤...它沒有必要指定內容類型.. –

+0

同樣的事情behnam,獲取兩個記錄與空值.. –

+0

我忘記了一個非常重要的鍵/值對(傳統:真正的)。再次檢查 –

相關問題