ASP.NET MVC 5 HttpPost
本文关键字:HttpPost MVC NET ASP | 更新日期: 2023-09-27 18:20:44
我有控制器:
[HttpGet]
public ActionResult ItemIndex()
{
List<Item> item = RepositoryFactory.Create<IItemRepository>().ItemList();
return View(item);
}
[HttpPost]
public ActionResult ItemIndex(FormCollection formCollection)
{
foreach( string key in formCollection.AllKeys)
{
Response.Write("Key" + key);
Response.Write(formCollection[key]);
}
return View();
}
观点:
@model List<Kev.Models.Item>
<div style="font-family:Arial">
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
foreach (var item in Model)
{
@Html.LabelFor(m => item.Start)
@Html.EditorFor(m => item.Start)
@Html.ValidationMessageFor(m => item.Start)
}
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Zapisz" class="btn btn-default" />
</div>
</div>
}
</div>
存储库中有包含Item的DbContext。我想做的是在View中填充这些文本框,并提交更改以使用这些值更新现有数据库。我现在所做的不是工作代码,我甚至不能让这个HttpPost工作。它在@foreach中弹出>>模型的NullReferenceException,不知道如何修复它。
将foreach
更改为for
循环,如下所示:
for(int i=0; i<Model.Count;i++)
{
@Html.LabelFor(m => Model[i].Start)
@Html.EditorFor(m => Model[i].Start)
@Html.ValidationMessageFor(m => Model[i].Start)
}
并将您的动作参数从FormCollection
更改为List<Item>
:
[HttpPost]
public ActionResult ItemIndex(List<Kev.Models.Item> model)
{
return View();
}