Pergunta

Em um modo de exibição, estou adicionando uma entrada personalizado para o formulário.Esta entrada não é uma parte do modelo que a vista é vinculado.É altamente personalizado e depende das condições em tempo de execução.

Quando o controlador processa o POST, eu posso acessar o formulário publicado campo, sem problema.

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

    string customValue = formCollection["CustomField"]; 

    return View(jobType);
}

Eu tenho um ActionFilter que é executado após a ação de um controller para lidar com a entrada personalizado, mas eu não vejo nenhuma maneira fácil de acessar o FormCollection a partir deste 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?
    }
}

Alguma idéia de como eu pode facilmente referenciar o FormCollection a partir deste filtro?

Isto é para ASP.NET MVC 5.

Obrigado!

Foi útil?

Solução

Parece que você poderia fazer algo parecido com isso

var formCollection = new FormCollection(
   filterContext.HttpContext.Request.Form
);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top