1

MVC3アプリでは、値を取得するためにグローバルフィルターが必要であり、コントローラーを実行する前に、コントローラーからその値を後で取得するにはどうすればよいですか?

public class MyGlobalFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        int i = 10;
    }
}
4

2 に答える 2

3

HttpContext.Itemsを使用できます

public class MyGlobalFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext.Current.Items["I"] = 10;
    }
}
public class MyController : Controller
{
    private int _i;
    protected override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        _i = (int)HttpContext.Items["I"];
    }
}
于 2012-11-28T15:57:27.880 に答える
1

次のコードのように、アクションコントローラーコンテキストによって新しいViewBag値を設定できることがわかりました。

filterContext.Controller.ViewBag.MyNewValue = 1
于 2012-11-28T16:03:39.100 に答える