我有一个控制器,其操作如下:
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模型)方法?
在创建帖子的方法中,我想转移到详细信息视图并传递当前模型,这样就不必从数据库重新加载该数据。
答案 0 :(得分:1)
将您的Html.BeginForm更改为
<%= Html.BeginForm("Action","Contoller", new{}) %>
当您在“创建”操作中返回“详细信息”视图时,Framework不会猜测您的意图。 因此,它呈现“详细信息”视图,但仍然认为它是一个Create动作,并且Html.BeginForm()帮助器方法回发到同一个动作。