![](/img/trans.png)
[英]Javascript array grid object property serialized by Kendo is null on server
[英]Complex object added into serialized Array always null on server side
我正在序列化表單數據並在其中添加額外的用戶對象。
Jquery代碼:
....
var users= getUsers();
var formData = $("#form").serializeArray();
formData.push({ name: 'Users', value: users});
$.ajax({
url: "/ControllerName/ViewName",
type: "POST",
contentType: "application/x-www-form-urlencoded; charset=UTF-8"
data: formData
});
....
function getUsers() {
var users= [];
users.push( new Object({
Name: "User 1",
}));
return users;
}
C#模型
public class File
{
public string Name { get; set; }
public int Id { get; set; }
public List<Users> Users { get; set; }
}
public class Users
{
public string Name { get; set; }
}
當呼叫命中服務器端控制器操作時,“用戶”列表始終為空(Count of 0)。 我已經嘗試過stringify並發送為Json,但這也沒有幫助。 我在服務器端使用ASP.NET MVC 5。
我究竟做錯了什么?
編輯我遇到的問題是嘗試將對象列表推送到formData(在本例中為用戶)。 如果我按下一個布爾值,它會在服務器端反序列化。
將代碼包裝在$(document).ready(function(){ // code here });
如下所示,它將確保一旦DOM加載並處於就緒狀態,將執行包裝的javascript。 了解更多信息 。
這是小提琴
$(document).ready(function(){
var users= getUsers();
var formData = $("#form").serializeArray();
formData.push({ name: 'Users', value: users});
alert(JSON.stringify(formData));
$.ajax({
url: "/ControllerName/ViewName",
type: "POST",
data: JSON.stringify(formData)
});
});
function getUsers() {
var users= [];
users.push({Name: "User 1"});
return users;
}
編輯
將data: formData
更改為data: JSON.stringify(formData)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.