我想我错过了一些东西。
我想要做的就是将模型列表从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等)。
我该如何解决?