Ajax将序列化的局部视图模型列表发布到控制器

Ajax将序列化的局部视图模型列表发布到控制器,ajax,asp.net-mvc-5,controller,Ajax,Asp.net Mvc 5,Controller,我有一个index.cshtml页面,我在其中重新设计显示按钮上的局部视图,单击 <div id="SomeId"> @Html.Partial("_Data", Model.SampleData); </div> @Html.Partial(“_Data”,Model.SampleData); 主模型 public List<Data> SampleData{ get; set; } public List S

我有一个index.cshtml页面,我在其中重新设计显示按钮上的局部视图,单击

<div id="SomeId">
@Html.Partial("_Data", Model.SampleData);
</div>

@Html.Partial(“_Data”,Model.SampleData);
主模型

public List<Data> SampleData{ get; set; }
public List SampleData{get;set;}
局部视图模型

public class Data
{
    public string Name { get; set; }
    public string Code { get; set; }
    public List<Hours> Hours { get; set; }
}
公共类数据
{
公共字符串名称{get;set;}
公共字符串代码{get;set;}
公共列表小时数{get;set;}
}
在另一个按钮save click上,我想将数据模型列表保存到DB。所以,我使用ajax调用从主视图传递更新的列表,并从控制器返回部分视图

OnSaveButtonClick: function () {
            var url = "@Url.Action("SaveData", "ControllerName")";
            console.log($('#SomeId').serialize());
                $.ajax({
                    type: "POST",
                    url: url,
                    dataType: "html",
                    data: $('#SomeId').serialize(),                            
                    success: function (response) {
                        $('#SomeId').html(response);
                    }
                });

        }

[HttpPost]
    public ActionResult SaveData(List<Data> sampleData)
    {
//some code to call DB
        return PartialView("_Data", sampleData);
    }
onSaveButton单击:函数(){
var url=“@url.Action”(“保存数据”、“控制器名称”);
log($('#SomeId').serialize());
$.ajax({
类型:“POST”,
url:url,
数据类型:“html”,
数据:$('#SomeId')。序列化(),
成功:功能(响应){
$('#SomeId').html(响应);
}
});
}
[HttpPost]
公共操作结果保存数据(列出sampleData)
{
//一些调用DB的代码
返回PartialView(“_数据”,sampleData);
}
部分视图_Data.cshtml

@model IEnumerable<Data>
@using Model.Sheet
@{
    var modelList = Model.ToList();
 }

<table>
@if (modelList.Count > 0)
{
    for (int item = 0; item < modelList.Count; item++)
    {
        <tr>
                <td>
                    @Html.DisplayFor(modelItem => modelList[item].Name)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => modelList[item].Code)
                </td>
                @if (modelList[item].Hours != null)
                {
                    for (int eachItem = 0; eachItem < modelList[item].Hours.Count; eachItem++)
                    {
                        <td>                                
                            @Html.Hidden(string.Format("HHours_{0}_{1}", item, eachItem), @modelList[item].Hours[eachItem].Hours, new { id = string.Format("HHours_{0}_{1}", item, eachItem) })
                            @Html.TextBox(string.Format("Hours_{0}_{1}", item, eachItem), @modelList[item].Hours[eachItem].Hours, new { id = string.Format("Hours_{0}_{1}", item, eachItem) })
                            @Html.Label(string.Format("LHours_{0}_{1}", item, eachItem), "SomeLabel", new { id = string.Format("Hours_{0}_{1}", item, eachItem) })<br />                                
                        </td>
                    }
                }
        </tr>
        
    }
}
@model IEnumerable
@使用Model.Sheet
@{
var modelList=Model.ToList();
}
@如果(modelList.Count>0)
{
对于(int item=0;itemmodelList[item].Name)
@DisplayFor(modelItem=>modelList[item].Code)
@如果(模型列表[项目].Hours!=null)
{
对于(int-eachItem=0;eachItem
}
}
}
}
我将控制器中的sampleData设置为null。如何将局部视图模型列表获取到控制器