0

我有一个奇怪的问题,我不知道这是否真的可能。我想要的是,能够列出我模型中的所有值并直接在列表中编辑它们。

这是我所拥有的:

模型链接器:

     public class StoreLinkerModel
      {
        //public Guid? id { get; set; }
        public IEnumerable<Stores> StoresAndOpeninghours { get; set; }
      }

public class Stores
  {
    public long ID { get; set; }
    public string StoreName { get; set; }
    public string Address { get; set; }
    public string Zip { get; set; }
    public string City { get; set; }
}

我的控制器:

public ActionResult Overview()
      {

        var model = new StoreLinkerModel
        {
          StoresAndOpeninghours = new[]
            {
              new Stores()
                {
                  ID = 0,
                  Address = "Enghavevej 70"
                }, 
                new Stores()
                  {
                    ID=1,
                    Address = "Løngangsgade 30"
                  }, 
            }

        };
        return View(model);
      }

      [HttpPost]
      public ActionResult Overview(StoreLinkerModel model)
      {
        if (ModelState.IsValid)
        {
          var x = "go go go";

        }


        return RedirectToAction("Overview");
      }

我的overview.aspx 页面:

@model streetoffrs.web.Models.StoreLinkerModel
@{
    ViewBag.Title = "Overview";
    Layout = "~/Views/Shared/_dashboard.cshtml";
}

@Html.EditorFor(x => x.StoresAndOpeninghours)

和我的 EditorTemplate stores.aspx

@model streetoffrs.web.Models.Stores

@using (Html.BeginForm("Overview", "Dashboard", FormMethod.Post, new { name = "id" + @Html.DisplayFor(m => m.ID) }))
{


  @Html.EditorFor(x => x.Address)
  <input type="submit" class="left btn btn-primary" value="Ret butiksdata">
}
<br />

该列表正在按应有的方式生成,当我在第一个编辑器上点击第一个按钮时,它会将模型发布到我的控制器,但是当我按下第二个按钮时,模型为空,但第一个按钮仍然有效!

这有可能吗,如果是,我错过了什么,如果没有,请告诉我如何做到这一点。

提前致谢!

4

1 回答 1

0

您需要像这样编辑帖子操作:

  [HttpPost]
  public ActionResult Overview(StoreLinkerModel model)
  {
    if (ModelState.IsValid)
    {
      var x = "go go go";

    }


    return View(model);
  }

RedirectToAction将转到第一个概览操作,因此您将丢失数据。

于 2013-05-08T01:16:01.917 回答