2009-02-09 106 views
1

我可能走錯了方向,所以請幫助。ASP.NET MVC多種控制器操作在一種形式中

我在我的ASP.NET MVC應用程序中顯示評論的頁面。這些評論來自'評論'控制者的'索引'行爲。在頁面的底部,我有一個添加新評論的表單。呈現形式的用戶和

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult AddComment(Comment c); 

行動時,發佈到服務器的新評論時,這種形式應該叫

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult AddComment(); 

行動。

我認爲'評論'頁面應該調用三個操作方法(Index,AddComment [Get],AddComment [Post])。然而,AddComment [Get]永遠不會被調用。

請指點我正確的方向。

謝謝。

回答

1

如果表單提交進行了POST(提交)到評論頁面(即,具有評論頁面的動作和POST方法),那麼它實際上是使用小節的POST版本。如果您(例如)使用標準的錨點/鏈接來顯示獨立評論頁面(或者發佈AJAX「獲取」該地址),則會使用GET版本。

您目前正在瀏覽頁面?目前,它聽起來像你的索引頁面手動添加表單 - 所以沒有地方可以使用GET註釋,除非你通過AJAX添加表單。

+0

Marc,表單提交應該添加註釋並將其追加到底部(現在不用ajax)。頁面html爲每個現有評論渲染部分,在foreach循環之後有一個Html.BeginForm方法。謝謝。 – Valentin 2009-02-09 08:07:24

0

添加對MVC Futures程序集的引用,並使用Html.RenderAction輔助方法在頁面視圖中包含另一個操作的結果。