私のモデルは次のように定義されています:
public class RulePageViewModel
{
public List<RuleItem> RuleItemList { get; set; }
public RuleViewModel RuleViewModel { get; set; }
}
私の行動は次のように定義されています:
public JsonResult Save(RulePageViewModel viewmodel)
json、viewmodel.RuleItemList.Count > 0 を投稿しようとしましたが、viewmodel.RuleItemList のインスタンスが null です。モデルバインドを使用する場合、ビューでリストをバインドする方法は?
モデルをバインドしようとはしていません。ajax を使用して json をアクションに投稿するだけです。うまくいくと思いますが、失敗したコード:
var s = { "RuleItemList": [{ "RuleGroupId": 1, "RuleGroupName": "", "Keywords": "ajax", "ResponseDescribe": "dadhsa" }], "RuleViewModel": { "RuleGroupId": 14, "RuleList": [{ "RuleId": 567, "SourceId": 125, "KeyValue": "callback", "SourceType": 0 }], "SourceList": [] } };
var ss = JSON.stringify(s);
var json = JSON.parse(ss);
$.ajax({
url: '@Url.Action("Save")',
type: 'POST',
data: json,
dataType: 'json',
success: function(response) {
alert('success');
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
});
OK、私はそれを解決しました:
var json = { "RuleItemList": [{ "RuleGroupId": 1, "RuleGroupName": "", "Keywords": "ajax", "ResponseDescribe": "dadhsa" }], "RuleViewModel": { "RuleGroupId": 14, "RuleList": [{ "RuleId": 567, "SourceId": 125, "KeyValue": "callback", "SourceType": 0 }], "SourceList": [] } };
$.ajax({
url: '@Url.Action("Save")',
type: 'POST',
data: JSON.stringify(json),
dataType: 'json',
contentType: 'application/json',
success: function(response) {
alert('success');
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
});
皆さんありがとう!