【问题标题】:ASP.NET MVC 5 HttpPostASP.NET MVC 5 HttpPost
【发布时间】: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&lt;Item&gt;??确保
  • List item = RepositoryFactory.Create().ItemList().ToList();
  • 是的,现在它可以工作了,但是现在我如何将 formCollection 项目转换为 列表?

标签: c# asp.net-mvc html razor http-post


【解决方案1】:

像这样将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&lt;Item&gt;

[HttpPost]
public ActionResult ItemIndex(List<Kev.Models.Item> model)
{
   return View();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多