ASP.NET MVC - ¿Cómo puedo acceder al formcollección desde la ActionExecutedContext?

StackOverflow https://stackoverflow.com//questions/23000110

  •  20-12-2019
  •  | 
  •  

Pregunta

En una vista, estoy agregando una entrada personalizada al formulario.Esta entrada no es una parte del modelo de la que está vinculada la vista.Es altamente personalizado y depende de las condiciones en tiempo de ejecución.

Cuando el controlador maneja la publicación, puedo acceder al campo de formulario publicado sin ningún problema.

[HttpPost]
[MyCustomActionFilter()]
public ActionResult Edit(int id, IJobType jobType, FormCollection formCollection)
{
    // blah

    string customValue = formCollection["CustomField"]; 

    return View(jobType);
}

Tengo un filtro de acción que se ejecuta después de la acción del controlador para manejar la entrada personalizada, pero no veo una manera fácil de acceder al formcollection desde este filtro.

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class MyCustomActionFilter : FilterAttribute, IActionFilter
 {
    public MyCustomActionFilter()
    {

    }

    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
        // How to access the FormCollection here?
    }
}

¿Alguna idea sobre cómo puedo hacer referencia fácilmente al formcollección de este filtro?

Esto es para ASP.NET MVC 5.

¡Gracias!

¿Fue útil?

Solución

Parece que podrías hacer algo como este

var formCollection = new FormCollection(
   filterContext.HttpContext.Request.Form
);

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top