将模型列表从View传递到Controller将返回具有默认值的集合

时间:2016-09-11 05:35:03

标签: javascript c# ajax asp.net-mvc

我想我错过了一些东西。

我想要做的就是将模型列表从View传递给Controller,我有7个项目,我成功传递了这7个项目,但其所有属性值都是默认值。

这是我的观点:

@model List<News>

@using (Html.BeginForm("SaveNewsPositions", "home", new { area = "news" }, FormMethod.Post))
    {
        <a href="#" id="savePositions">Save positions</a>
        <div class="news-items">
            @foreach (var news in Model)
            {
                @Html.Partial("_NewsControl", news)
            }
        </div>
    }

JS代码:

 $('#savePositions').on('click', function () {
    var form = $('form');
    $.post('@Url.Action("SaveNewsPositions", "home", new {area = "news"})', form.serialize(), function (response) {
        if (response.success) {
            //TODO...
        }
});

当我调试form.serialize()时,我看到包含所有值的对象,例如:

Position=1&Id=106 etc...

但是当涉及到控制器时:

[HttpPost]
public JsonResult SaveNewsPositions(List<News> models)
{
    //Some Code...
}

我看到模型有7个项目,每个项目的位置为0值,Id为标识(第一项:id = 1,第二个id = 2等)。

我该如何解决?

0 个答案:

没有答案