renderaction是否在提交时调用其对应的httpPost Action

时间:2010-11-15 07:44:12

标签: asp.net-mvc-2

我是asp.net mvc的新手,我有一个问题(非常基本)。我已经被黑了,但我对此并不完全确定,我找不到任何特别有用的东西。

假设我有2个控制器A和B以及2个视图FullView和PartView

public class AController:...
{
      //Renders FullView
      public ActionResult Create
      {
        ....
      }

      [HttpPost]
      public ActionResult Create
      {
        ....
      }
}


public class BController:...
{
      //Renders an Arbitrary partial View (PartView)
      public ActionResult Create
      {
        ....
      }

      //Saves the data of the partial View
      [HttpPost]
      public ActionResult Create
      {
        ....
      }
}

第一个视图(FullView)具有代码

<%Html.RenderAction("Create", "B"); %>    

我的问题是提交将BController的动作([HttpPost] Create)运行?

谢谢

2 个答案:

答案 0 :(得分:3)

这取决于您在<form />标记中指定的操作。这与asp.net mvc没有任何关系。如果您使用不带参数的Html.BeginForm(),它将发布到当前网址(而不是BController上的创建操作)。

答案 1 :(得分:0)

你可以做的第一件事是在你的行动中切换一些断点并点击f5。 其次 - 所谓的操作纯粹取决于您使用什么http方法命中的URL。

但是对于你的情况,当你发布表单A和控制器A进程发布时,你可能会遇到验证问题,那就是你在post动作上返回View(),这就是为什么表单B是通过post方法呈现的。