ASP.NET MVC - ActionExeCutedContextからFormCollectionにアクセスするにはどうすればいいですか?

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

  •  20-12-2019
  •  | 
  •  

質問

図中、私はフォームにカスタム入力を追加しています。この入力は、ビューがバインドされているモデルの一部ではありません。それは高度にカスタマイズされており、実行時の条件によって異なります。

コントローラが投稿を処理するとき、私は問題なく投稿されたフォームフィールドにアクセスできます。

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

このフィルタからのフォームコレクションを簡単に参照できる方法についてのアイデアは?

これはASP.NET MVC 5用です。

ありがとうございました!

役に立ちましたか?

解決

このようなことができるようです

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top