ASP.NET MVC - Comment puis-je accéder à la formeCollection de l'actionExecutedContext?

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

  •  20-12-2019
  •  | 
  •  

Question

Dans une vue, j'ajoute une entrée personnalisée au formulaire.Cette entrée ne fait pas partie du modèle que la vue est liée à.Il est fortement personnalisé et dépend des conditions d'exécution.

Lorsque le contrôleur gère le poteau, je peux accéder au champ de formulaire posté sans problème.

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

    string customValue = formCollection["CustomField"]; 

    return View(jobType);
}

J'ai un facteur d'action qui fonctionne après l'action du contrôleur pour gérer l'entrée personnalisée, mais je ne vois aucun moyen simple d'accéder à la formeCollection à partir de ce filtre.

[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?
    }
}

Des idées sur la manière dont je peux facilement référencer le formulaire de ce filtre?

Ceci est pour ASP.NET MVC 5.

Merci!

Était-ce utile?

La solution

Il semble que vous puissiez faire quelque chose comme ça

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top