Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么是ASP MVC中的django中间件?_C#_Asp.net Mvc 3_Django Middleware - Fatal编程技术网

C# 什么是ASP MVC中的django中间件?

C# 什么是ASP MVC中的django中间件?,c#,asp.net-mvc-3,django-middleware,C#,Asp.net Mvc 3,Django Middleware,基本上,我想为每个请求向ViewData/ViewBag中注入一些数据。在ASP.NET MVC中,这将是一个很好的解决方案。如果你想在全球范围内做这件事,你可以把它注册为。这样,它将应用于所有控制器动作,因此您不需要单独装饰它们 因此,您的过滤器可以这样定义: public class GlobalViewBagInjectorActionFilter : ActionFilterAttribute { public override void OnActionExecuted(Act

基本上,我想为每个请求向ViewData/ViewBag中注入一些数据。

在ASP.NET MVC中,这将是一个很好的解决方案。如果你想在全球范围内做这件事,你可以把它注册为。这样,它将应用于所有控制器动作,因此您不需要单独装饰它们

因此,您的过滤器可以这样定义:

public class GlobalViewBagInjectorActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        filterContext.Controller.ViewBag.Foo = "bar";
    }
}
并在您的
Global.asax中的
RegisterGlobalFilters
方法中注册:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
    filters.Add(new GlobalViewBagInjectorActionFilter());
}
现在,您可以在所有视图中使用
ViewBag.Foo
属性


但是在大多数情况下,它是比
ViewBag
更好的选择,因为它们允许您传递强类型的视图模型,而不是依赖于这个弱类型的ViewBag和一些神奇的字符串。

我看到了子操作,但让我感到不安的是,我仍然需要在路由中为它定义url。这对我来说毫无意义。