代码之家  ›  专栏  ›  技术社区  ›  Jeremy

更改视图MVC 2会导致处理日志出现问题

  •  0
  • Jeremy  · 技术社区  · 15 年前

    我有一个具有以下操作的控制器:

    public ActionResult Create()
    {
        return View(new MyModel());
    }
    
    [HttpPost]
    public ActionResult Create(MyModel model)
    {
        //Update database
        ...
        //Pass the current model so we don't have to load it from the database
        return View("Details", model);
    }
    
    [HttpPost]
    public ActionResult Details(MyModel model)
    {
    }
    

    我的create.aspx和details.aspx页面都有一个提交按钮。create.aspx页面上的submit将导致记录插入数据库,然后转到详细信息视图。该部分工作正常,我可以单击提交按钮,插入记录并转到该记录的详细信息视图。现在,如果我在详细信息视图中单击提交,仍然会调用创建(myModel模型)。不应该调用details(mymodel model)方法吗?

    在创建日志的方法中,我希望传输到详细信息视图并传递当前模型,这样就不必从数据库重新加载该数据。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Alexander Taran    15 年前

    在详细信息视图中,将html.begininform更改为

    <%= Html.BeginForm("Action","Contoller", new{}) %>
    

    当您在创建操作中返回“细节”视图时,框架不会猜测您的意图。 结果,它呈现“详细信息”视图,但仍然认为它是一个创建操作,html.begininform()helper方法将返回到相同的操作。