Вызывает ли Renderaction соответствующее действие httpPost при отправке - PullRequest
1 голос
/ 15 ноября 2010

Я немного новичок в 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
      {
        ....
      }
}

1-й вид (FullView) имеет код

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

мой вопрос при отправке будет ли выполняться действие BController ([HttpPost] Create)?

Спасибо

Ответы [ 2 ]

3 голосов
/ 15 ноября 2010

Это зависит от того, какое действие вы указали в теге <form />. Это не имеет ничего общего с asp.net mvc. Если вы используете Html.BeginForm() без параметров, он будет публиковаться в текущем URL-адресе (не в действии create в BController).

0 голосов
/ 15 ноября 2010

Ну, первое, что вы можете сделать, это переключить некоторые точки останова в ваших действиях и нажать f5.Во-вторых, то, какое действие вызывается, зависит только от того, какой URL вы указали с помощью какого http-метода.

Но для вашего случая, когда вы отправляете пост процессов формы A и контроллера A, вы можете столкнуться с проблемами валидации, и тогда вы вернетесьView () для действия post, и поэтому форма B отображается с помощью метода post.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...