コントローラに配列をポストする際に問題があります。私はアイテムのリストを送信しており、アイテムにはグループの配列があります。私が送信している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
Kevinは以下を省略しているので、実際はUserGroupModelsオブジェクトのJSONではなく、文字列の配列をコントローラに渡すだけです。 –