2009-12-24 48 views
0

我有以下操作的控制器:改變視圖MVC 2引起的問題後移交

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

在create post的方法中,我想轉移到details視圖並傳遞當前模型,以便不必從數據庫重新加載該數據。

+0

你能發表你的標記代碼(aspx)的細節嗎? – Krunal 2009-12-25 04:22:02

回答

1

在您的詳細信息,查看改變你Html.BeginForm到

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

當您返回「詳細信息」視圖中創建行動,框架不會猜測你的意圖。 因此它呈現「詳細信息」視圖,但仍然認爲它是一個創建操作,並且Html.BeginForm()輔助方法回發到相同的操作。

+0

好吧,我得到了調用Details(MyModel模型),但如你所建議的那樣,將BiginForm改爲<%= Html.BeginForm(「Details」,「MyControler」,Model)%>。太棒了,謝謝! – Jeremy 2009-12-27 00:56:19