在视图中,我向表单添加了自定义输入。此输入不是视图绑定的模型的一部分。它高度自定义,取决于运行时的条件。

当控制器处理帖子时,我可以访问发布的表单字段,没有问题。

[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
);
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top