2009-02-09 47 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辅助方法在页面视图中包含另一个操作的结果。