RenderAction должен вести себя по-разному в зависимости от содержимого страницы - PullRequest
2 голосов
/ 30 июня 2009

Я использую RenderAction для рендеринга фрагмента, который используется на всем моем сайте.

Это часть, где пользователь может искать сущность. Это зависит от контроллера / действия, которое отображало родительский основной вид, что делается после обнаружения объекта.

Допустим, у меня есть контроллеры:

HireController, FireController с Действие ActOnPerson и

PeopleController с Action FindPerson, который отображает частичное FindPerson

Представления: Hire / SearchPerson.aspx и Fire / SearchPerson.aspx

Каждый просмотр содержит помощника:

 <%Html.RenderAction("FindPerson ", "People"); %>

Форма, которая отправляет сообщения в HireController / FireController, содержится в частичном. Это должно быть так, потому что на самом деле есть несколько шагов (посты в форме), связанных с поиском человека.

Есть ли способ решить внутри частичного FindPerson, нужно ли отправлять форму в FireController или HireController? Наверное, я ищу что-то вроде открытых свойств WebControls, но для RenderAction.

1 Ответ

2 голосов
/ 30 июня 2009

Просто добавьте параметр («PostTo» или «Next») в People.FindPerson Action:

<% Html.RenderAction("FindPerson ", "People", new { next = Url.Action("ActOnPerson", "HireController") }); %>

<!-- or -->

<% Html.RenderAction("FindPerson ", "People", new { nextaction = "ActOnPerson", nextcontroller = "HireController" }); %>

В FindPerson PartialView:

<form method="post" action="<%= ViewData["next"].ToString() %>">

<!-- or -->

<% using (Html.BeginForm(
    ViewData["nextaction"].ToString(), ViewData["nextcontroller"].ToString() ) { %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...