c# – 在MVC3中的每个Action之前运行一个方法
发布时间:2020-12-15 06:49:11 所属栏目:百科 来源:网络整理
导读:在运行MVC3中的每个Action之前,我们如何运行一个方法? 我知道我们可以使用以下方法进行OnActionExecuting: public class ValidateUserSessionFilterAttribute : ActionFilterAttribute{ public override void OnActionExecuting(ActionExecutingContext fi
在运行MVC3中的每个Action之前,我们如何运行一个方法?
我知道我们可以使用以下方法进行OnActionExecuting: public class ValidateUserSessionFilterAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { ... } } 但是,如何在ActionExecuting之前运行方法? 解决方法
你正在寻找
Controller.ExecuteCore().
在每个动作调用之前调用此函数.您可以在控制器或基本控制器中覆盖它.从Nadeem Afana设置基于Cookie的文化的示例: public class BaseController : Controller { protected override void ExecuteCore() { string cultureName = null; // Attempt to read the culture cookie from Request HttpCookie cultureCookie = Request.Cookies["_culture"]; if (cultureCookie != null) { cultureName = cultureCookie.Value; } else { if (Request.UserLanguages != null) { cultureName = Request.UserLanguages[0]; // obtain it from HTTP header AcceptLanguages } else { cultureName = "en-US"; // Default value } } // Validate culture name cultureName = CultureHelper.GetImplementedCulture(cultureName); // This is safe // Modify current thread's cultures Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cultureName); Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; base.ExecuteCore(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |