将项目列表传递给控制器

时间:2017-06-06 21:49:56

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

我有以下ViewModel类:

public class Data
{
    public string FirstName{ set; get; }
    public string LastName { set; get; }
    public string Location{ set; get; }
    public bool Remove{ set; get; }
}

在Controller中,我将viewmodel分配如下:

[HttpGet]
    public async Task<ActionResult> Index()
        {
         List<Data> data=new List<Data>;

         for(int i=0;i<1000;i++)
              {
                data.Add ( new Data
                              {
                                FirstName="Name"+i.ToString(),
                                LastName="Surname"+i.ToString(),
                                Location="Geolocation:"+i.ToString(),
                                Remove=false;

                              }
            return View(data.ToList());

            }

在我的视图中,我在表格中显示所有数据,我可以在其中检查要删除的项目,并且我想将alla数据传递回我的Controller来处理数据。这是我的观点:

@model  List<MyProject.Models.Data>
<table>
        <thead>
            <tr>
                <th scope="col">Firstname</th>
                <th scope="col">Lastname</th>
                <th scope="col">Location</th>
                <th scope="col">Remove</th>
            </tr>
        </thead>
         <tbody>
@using ( Html.BeginForm ( "Index","Home",FormMethod.Post))
                {

            for(int i=0;i<Model.Count;i++)
                {
                <tr>
                    <td>
                   @Html.CheckBoxFor(m => m[i].Remove)
                   </td>                    
                   <td>@Model[i].Firstname</td>
                   <td>@Model[i].Lastname</td>
                   <td>@Model[i].Location</td>
                </tr>}
                  <button type="submit">Send</button>
                }
         </tbody>
 </table>

最后,这是我在Controller中的Post动作:

 [HttpPost]
    public ActionResult Index(List<Data>model)
          {
           var result=model;
           return View();
           }

但我得到了空名单!!

能否告诉我我做错了什么?

0 个答案:

没有答案