我有以下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();
}
但我得到了空名单!!
能否告诉我我做错了什么?