【问题标题】:changing view mvc 2 causes problems handing post更改视图 mvc 2 导致处理帖子出现问题
【发布时间】:2009-12-24 23:53:50
【问题描述】:

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

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 页面上的提交将导致一条记录插入到数据库中,然后进入详细信息视图。该部分工作正常,我可以单击提交按钮,插入记录并转到该记录的详细信息视图。现在,如果我在详细信息视图中单击提交,仍然会调用 Create(MyModel 模型)。不应该调用 Details(MyModel model) 方法吗?

在创建帖子的方法中,我想转移到详细信息视图并传递当前模型,这样就不必从数据库中重新加载该数据。

【问题讨论】:

  • 你能发布你的标记代码(aspx)的细节吗?

标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-routing


【解决方案1】:

在您的详细信息视图中将您的 Html.BeginForm 更改为

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

当您在创建操作中返回“详细信息”视图时,Framework 不会猜测您的意图。 结果,它呈现“详细信息”视图,但仍认为它是一个 Create 操作,并且 Html.BeginForm() 辅助方法回发到相同的操作。

【讨论】:

  • 好的,我得到了要调用的详细信息(MyModel 模型),但按照您的建议将 BiginForm 更改为 。效果很好,谢谢!
猜你喜欢
  • 2017-12-11
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多