2017-05-19 28 views
0

コントローラに配列をポストする際に問題があります。私はアイテムのリストを送信しており、アイテムにはグループの配列があります。私が送信しているsendData変数に配列があっても、配列の値はコントローラ内でnullとして表示されます。nockoutjsでajax経由でmvcコントローラに配列をポスト

私のデータは私が告知しているものです。グループの

[Display(Name = "SSO")] 
[Required] 
     public virtual string ID { get; set; } 

     [Display(Name = "First Name")] 
     [Required] 
     public string FirstName { get; set; } 

     [Display(Name = "Last Name")] 
     [Required] 
     public string LastName { get; set; } 

     [Display(Name = "User Group(s)")] 
     public UserGroupModels[] UserGroup { get; set; } 

モデル:この場合、変数のデータは、ユーザーのための"[{"id":"123456789","firstName":"John","lastName":"Doe","UserGroups":["1","2"]}]"

私のモデルです。

public class UserGroupModels 
    { 
     public int ID { get; set; } 

     public string MAMUserGroup { get; set; } 
    } 

AJAX呼び出しは、1対多の関係に気付くでしょう。あなたはここに私のコントローラは、私はList<User> userの地元の人々を見てみると、私は(配列内のユーザーグループの正確な数を見ている

public async Task<ActionResult> CreateMultiple(List<User> users) 
     {do something...} 

self.save = function (form) { 


    sendData = ko.toJSON(self.users);//value is "[{"id":"123456789","firstName":"John","lastName":"Doe","UserGroups":["1","2"]}]" 


    $.ajax({ 
     url: '/Users/CreateMultiple', 
     contentType: 'application/json', 
     async: true, 
     traditional: true, 
     type: 'POST', 
     dataType: 'json', 
     data: sendData, 
     error: function (jqXHR, textStatus, errorThrown) { 
      console.log("FAIL: "); 
      alert("ERROR: " + errorThrown) 
      hidePleaseWait(); 
     }, 
     success: function (response) { 
      hidePleaseWait(); 
      console.log(response.alreadyExistList); 

だけでなく、私はKnockoutJSを使用していますがわかりますこの場合は2)、各値はNULLです。たとえば、 users[0].UserGroups[0]=null, users[0].UserGroups[1]=null

+0

Kevinは以下を省略しているので、実際はUserGroupModelsオブジェクトのJSONではなく、文字列の配列をコントローラに渡すだけです。 –

答えて

0

UserGroups json配列の項目は、UserGroupModelsクラスをモデル化するオブジェクトである必要があります。

"UserGroups":[{"ID":"1"},{"ID":"2"}] 
+1

さて、ちょうどKnockoutjsが正しくフォーマットされるようにしようとしています。結果をお知らせします。 – rStackSharper

関連する問題