asp.net MVC Handle Respuesta Parcial devolución de datos
-
12-09-2019 - |
Pregunta
I tiene varias páginas que contienen la misma vista parcial. El parcial contiene una forma que los mensajes a una acción. Después de un post quiero volver a la página que estaba antes de la entrada. ¿Cuál es la mejor manera de hacer esto?
Ejemplo:
Vista parcial: forma de post action = nota / crear /
Páginas
page1: productos / index /
page2: cliente / detalles /
page3: orden / detalles /
Estos 3 páginas contienen la vista parcial, al publicar el parcial se redirige a tomar nota / crear /. Necesito volver a la página original en caso de éxito.
Gracias Simon
Solución
o bien tienen el puesto suceda a través de AJAX - por lo tanto no salir de la página, o pasar la corriente controlador / acción / Identificación del (o la dirección URL en su conjunto) como parámetros a la acción que se encarga de la entrada. Vea a continuación un ejemplo de la tarde.
<% 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...
<% } %>
o
<% using (Html.BeginForm( ...,
new { ReturnUrl = Url.Action( ViewContext.RouteData["action"],
ViewContext.RouteData ) }, ... )) { %>
....
<% } %>
Otros consejos
Puede almacenar la dirección de la página actual en un campo oculto y enviarlo a la petición del anuncio.
En su vista parcial:
<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>
A continuación, recuperar la dirección de la entrada oculta y redirigir al usuario a la misma.