asp.net MVC обрабатывает частичный ответ обратной передачи

У меня есть несколько страниц, содержащих одно и то же частичное представление. Партиал содержит форму, которая публикует действие. После поста хочется вернуться на ту страницу, на которой я был до поста. Как лучше всего это сделать?

Пример:

Частичный просмотр: форма post action = note/create/

Страницы

страница 1: продукты/индекс/

page2: клиент/детали/

page3: заказ/детали/

Эти 3 страницы содержат частичное представление, при публикации которого оно перенаправляется на примечание/создание/. Мне нужно вернуться на исходную страницу в случае успеха.

Спасибо Саймон


person longhairedsi    schedule 13.07.2009    source источник


Ответы (2)


Либо сделайте сообщение через AJAX - таким образом, не покидая страницу, либо передайте текущий контроллер/действие/идентификатор (или URL-адрес в целом) в качестве параметров действию, которое обрабатывает сообщение. Ниже приведен пример последнего.

 <% using (Html.BeginForm(...)) { %>

      <input type='hidden'
             name='currentController'
             value='<%= ViewContext.RouteData["controller"] %>' />
      <input type='hidden'
             name='currentAction'
             value='<%= ViewContext.RouteData["action"] %>' />
      <input type='hidden'
             name='<%= ViewContext.RouteData["id"] %>' />

      ...rest of form...
 <% } %>

or

 <% using (Html.BeginForm( ...,
         new { ReturnUrl = Url.Action( ViewContext.RouteData["action"],
                                       ViewContext.RouteData ) }, ... )) { %>

  ....
 <% } %>
person tvanfosson    schedule 13.07.2009

Вы можете сохранить текущий адрес страницы в скрытом поле и отправить его с Почтовым запросом.

В вашем частичном представлении:

<script type="text/javascript">

var field = document.getElementById("currentPage");
field.value=document.location.href;

</script>

<form method="post" action="note/create/">
...

<input type="hidden" value="" id="currentPage" name="currentPage" />
</form>

Затем получить адрес скрытого ввода и перенаправить на него пользователя.

person Community    schedule 13.07.2009