Publicar desde una acción del controlador a otro (no redirigir)
-
05-07-2019 - |
Pregunta
Tengo una acción que debo publicar en otra acción si cumple con ciertas condiciones, pero no puedo conservar los datos del formulario al pasar a la siguiente acción.
La acción de recepción acepta un FormCollection, que es la acción de envío
Actualmente, estoy realizando una devolución RedirectToAction (" acción ", " controlador " formulario). Y puedo determinar que la variable de formulario tiene claves antes de redireccionar (form.HasKeys () = true).
Sin embargo, cuando se golpea la acción, FormCollection está vacía (form.HasKeys () = false).
¿Alguna idea? ¿Hay algún método 'PostToAction' que me esté faltando?
Para tu información: Estoy usando ASP.NET MVC Beta. ¡Muchas gracias!
Editar: Para aquellos que tienen este problema, consulte Patrón PRG . Este es el término real de lo que estaba buscando hacer, que también habilita URLs bonitas.
Solución
Cuando se llama a RedirectToAction, realizará una redirección HTTP y hará un GET a la otra URL de acción. Si necesita reutilizar el código de otro controlador, haría lo que le sugiriera, trasladar el común a un Control de Base o un servicio comercial y hacer que ambas acciones se deleguen en él.
Estos enlaces pueden ayudar:
Otros consejos
Yo refactorizaría los dos controladores y pondría el código común en un ayudante o en una clase base común. De esa manera, las acciones en los dos controladores pueden delegarse al código común.