在视图中,我正在向表单添加自定义输入。此输入不是视图绑定的模型的一部分。它是高度定制的,取决于运行时的条件。
当控制器处理POST时,我可以毫无问题地访问已发布的表单字段。
[HttpPost]
[MyCustomActionFilter()]
public ActionResult Edit(int id, IJobType jobType, FormCollection formCollection)
{
// blah
string customValue = formCollection["CustomField"];
return View(jobType);
}
我有一个在控制器操作之后运行的ActionFilter来处理自定义输入,但我看不到从这个过滤器访问FormCollection的简单方法。
[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?
}
}
关于如何从此过滤器轻松引用FormCollection的任何想法?
这适用于ASP.NET MVC 5.
谢谢!
答案 0 :(得分:1)
看来你可以做这样的事情
var formCollection = new FormCollection(
filterContext.HttpContext.Request.Form
);