【发布时间】:2014-09-04 17:00:06
【问题描述】:
我有控制器:
[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>
Repository 有 DbContext,里面有 Item。 我想要做的是在视图中填充这个文本框,并提交更改以使用这个值更新现有数据库。 我现在所做的不是工作代码,我什至不能让这个 HttpPost 工作。 它在@foreach 中弹出 >>Model 的 NullReferenceException 并且不知道如何解决。
【问题讨论】:
-
在视图或控制器异常即将到来?
-
哦,我忘记传递一些东西来返回 View();,现在它不会抛出 nullReference 但错误看起来像:传递到字典中的模型项的类型是 'System.Data.Entity.DbSet@ 987654323@1[Kev.Models.Item]'.
-
你通过
List<Item>??确保 -
List
- item = RepositoryFactory.Create
().ItemList().ToList(); - item = RepositoryFactory.Create
-
是的,现在它可以工作了,但是现在我如何将 formCollection 项目转换为
- 列表?
标签: c# asp.net-mvc html razor http-post