DataBase点击加载页面加载设置 - MVC

时间:2014-02-04 11:31:20

标签: c# asp.net-mvc

我需要在每个页面加载之前点击DB并加载设置文件。我目前正在使用MVC并在所有控制器中的构造函数中创建该调用。

我不确定处理这种情况的更好方法是什么?我读到就像在这种情况下我们可以使用单例类。

是否可以将数据包含一次并在页面中重复使用?什么是最好的方式?

一些示例代码段会有所帮助!

1 个答案:

答案 0 :(得分:0)

选项一:您可以在Application_BeginRequest中使用Global.asax.cs

protected void Application_BeginRequest(object sender, System.EventArgs e)
{
        //something
}

选项二:创建全局过滤器:

public class ActionLogFilter : IActionFilter
{
    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
         // do your stuff. This is run before control is passed to controller
    }

    public void OnActionExecuted(ActionExecutedContext filterContext) 
    { 
        // do stuff here - control here is passed after controller is done with the action execution
    }
}

然后将控制器添加到Global.asax.cs中的执行堆栈:

FilterConfig.RegisterGlobalFilters(GlobalFilterCollection filters)

和FilterConfig通常如下所示:

public static class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new MyFilter());
    }
}

选项三:创建覆盖OnActionExecuting的全局控制器(请参阅过滤器示例)。使控制器继承该全局基本控制器。

我更喜欢选择过滤器。 Favour composition over inheritance