ASP.NET MVC - 如何从ActionExecutedContext访问FormCollection?
-
20-12-2019 - |
题
在视图中,我向表单添加了自定义输入。此输入不是视图绑定的模型的一部分。它高度自定义,取决于运行时的条件。
当控制器处理帖子时,我可以访问发布的表单字段,没有问题。
[HttpPost]
[MyCustomActionFilter()]
public ActionResult Edit(int id, IJobType jobType, FormCollection formCollection)
{
// blah
string customValue = formCollection["CustomField"];
return View(jobType);
}
.
我有一个动作福特在控制器操作后运行以处理自定义输入,但我看到没有简单的方法可以从这个过滤器访问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。
谢谢!
解决方案
似乎你可以做这样的事情
var formCollection = new FormCollection(
filterContext.HttpContext.Request.Form
);
. 不隶属于 StackOverflow