改变观点mvc 2导致问题处理

时间:2009-12-24 23:53:51

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

我有一个控制器,其操作如下:

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模型)方法?

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

1 个答案:

答案 0 :(得分:1)

在您的详细信息视图中

将您的Html.BeginForm更改为

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

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