Asp.net mvc 4 通过所有MVC4页面传递参数

Asp.net mvc 4 通过所有MVC4页面传递参数,asp.net-mvc-4,Asp.net Mvc 4,在我的应用程序中,当某个特定参数存在时,需要在所有页面中传递该参数 我能做的最好的方法是什么? 每当我执行GET或POST请求时,都会调用某个函数,在该函数中,我可以验证参数是否存在并将其保留?创建一个如下所示的操作过滤器 public sealed class ScaffoldActionFilter : ActionFilterAttribute { public override void OnActionExecuted(ActionExecutedContex

在我的应用程序中,当某个特定参数存在时,需要在所有页面中传递该参数

我能做的最好的方法是什么?
每当我执行GET或POST请求时,都会调用某个函数,在该函数中,我可以验证参数是否存在并将其保留?

创建一个如下所示的操作过滤器

public sealed class ScaffoldActionFilter : ActionFilterAttribute
    {

        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
                var model = filterContext.Controller.ViewData.Model as PageModelBase;
                  // Whatever you want to do.
                model.myParam = "Im available in all views";
        }
    }
接下来,注册它以在每个请求上运行。在app_start/filterconfig.cs中查找 就像这样

filters.Add(new ScaffoldActionFilter());

现在,只需从每个视图返回标准pagebasemodel或派生类型,您就可以得到所需的内容。

您可以发布现有函数并展示您已经尝试过的示例吗?也许你的方式已经是最好的了。你能不能把参数存储在会话中的某个地方,并在需要的地方访问它?我不知道为什么会投反对票。我的问题有问题吗?谢谢你的回答@RubbleFord!这样做,就没有必要在每个操作上都使用[ScaffoldActionFilter],对吗?没错,您将其注册为全局过滤器,因此它可以运行所有操作。需要注意的一点是,您可能需要为jsonresults或partialresults设置排除,但这很容易做到。问我你是不是被难住了。你也可以把这个标记为答案:-)需要分数。谢谢!帮了我很多忙!