簡體   English   中英

添加到序列化數組中的復雜對象在服務器端始終為null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM