Quiero redirigir de una acción en un controlador a una acción en un segundo controlador. Normalmente usaría RedirectToAction ("actionName", "controllerName", objetos); El método quiero redirigir a tiene dos sobrecargas:Redirigir a la acción en otro controlador
- Uno de HttpVerbs.Get que se utiliza para la vinculación directa
- Uno de HttpVerbs.Post aceptar los tipos de referencia que se llenan a través modelbinding
Cuando hago mi redirección con el método RedirectToAction, me redireccionan al método GET de forma predeterminada, que por supuesto no coincide con mis parámetros.
¿Cómo puedo asegurarme de que redirija a la sobrecarga de la acción correcta?
--EDIT--
A petición algunos detalles más específicos:
La acción Quiero redirigir a llena el ViewData en base a los parámetros y luego llama a la visión correcta.
public ActionResult OverView(SearchBag searchBag, IngredientBag ingredientBag) {
Tiene una segunda versión para Obtiene así que puede trabajar por GET también:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult OverView(int colorId, string paintCode, string name, int formulaId) {
return OverView(new SearchBag()
{ ColorId = colorId, PaintCode = paintCode, ColorName = name, FormulaId = formulaId }
, formulaViewData.IngredientBag);
}
El que estoy llamando ahora está en un controlador diferente. Hace algunos cálculos previos, obtiene la información necesaria y luego hace exactamente lo mismo que las acciones anteriores. Podría replicar el código de la primera acción, pero prefiero llamar a esa acción.
[AcceptVerbs(HttpVerbs.Post)]
public RedirectToRouteResult ReCalculate(SearchBag searchBag, IngredientBag ingredientBag) {
que podría crear una instancia local temporal de ese lado del controlador, pero me di cuenta de que no tiene la correcta HttpContext y no choca con los métodos de inicialización.
Puede poner verbos múltiples en una sola acción como esta [AcceptVerbs (HttpVerbs.Post | HttpVerbs.Get)] –
¿Está intentando RedirectToAction desde la acción ReCalculate a la acción OverView? –
sí. Y como he recuperado todos mis objetos y los he recalculado en ReCalculate, no quiero tener que volver a hacerlo en mi acción de Resumen –