MVC中的后期操作中模型为空

时间:2017-03-09 21:32:55

标签: c# asp.net-mvc asp.net-mvc-4

我正在尝试将Checkboxlist与来自MVC中的API的一些数据绑定,但是在检查取消选中复选框之后发布表单以从列表中获取选中的选项但在Post操作中我将模型设为null。

我正在将List<ListItem>传递给View from Get action并在视图中以IEnumerable<ListItem>收到,并且在post post action中收到IEnumerable<ListItem>

我试图仅在FormCollection的情况下将参数更改为List和FormCollection我能够将模型作为resultsView接收。

如何在控制器的Post动作中获取模型?

模型

public class ListItemModel
    {
        public int Id
        {
            get;
            set;
        }
        public string Name
        {
            get;
            set;
        }
        public bool Checked
        {
            get;
            set;
        }  
    }

EditorTemplate

@model APITestCore.Models.ListItemModel

@Html.HiddenFor(x => x.Id)
@Html.HiddenFor(x => x.Name)
@Html.CheckBoxFor(x => x.Checked)
@Html.DisplayFor(x => x.Name)

查看

@model IEnumerable<APITestCore.Models.ListItemModel> 

@{
    ViewBag.Title = "ListTest";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>List</h2>

@using (Html.BeginForm())
{
    @Html.EditorForModel()

    <input id="Submit1" type="submit" value="submit" />

}

控制器动作 // POST:

[HttpPost]
    public string DeviceList(IEnumerable<ListItemModel> list)
    {
        string response = String.Empty;
        foreach(ListItemModel item in list)
        {
            if (item.Checked)
            {
                response += item.Id;
                response += ",";
            }
        }
        return response;
    }

0 个答案:

没有答案