我的模型定义:
public class RulePageViewModel
{
public List<RuleItem> RuleItemList { get; set; }
public RuleViewModel RuleViewModel { get; set; }
}
我的行动定义:
public JsonResult Save(RulePageViewModel viewmodel)
我尝试发布json,viewmodel.RuleItemList.Count&gt; 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);
}
});
好的,我解决了它:
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);
}
});
全部谢谢!
答案 0 :(得分:0)
一般来说,你应该这样做:
@for(var i = 0;i<Model.RuleItemList.Count;++i)
{
@Html.TextBoxFor(m => m.RuleItemList[i].Name);
}
@Html.EditorFor(m = > m.RuleViewModel.PropertyOne);
@Html.EditorFor(m = > m.RuleViewModel.PropertyTow);
@Html.EditorFor(m = > m.RuleViewModel.PropertyThree);
最终会生成类似于html的内容:
<input type="text" name="RuleViewModel.PropertyOne" value="" />
<input type="text" name="RuleViewModel.PropertyTow" value="" />
<input type="text" name="RuleViewModel.PropertyThree" value="" />
现在因为您没有在RuleItem
和RuleViewModel
课程中放置任何视图代码或任何代码来解决您的问题,所以请发布更多信息,但一般情况下应该从我在这里写的内容中理解如何实现这样的,将数据发布到你的控制器动作,以便Model Binder
知道要绑定哪些属性..