gpt4 book ai didi

asp.net - 在任何操作之前执行代码

转载 作者:行者123 更新时间:2023-12-03 21:21:35 24 4
gpt4 key购买 nike

我有以下要求:

在对我的网页的每个请求中,无论用户试图调用哪个操作,我都需要调用一些代码来检查资源是否到位。如果是,那么一切都很好,应该正常调用 action 方法。

但是,如果此资源不可用,我希望所有请求都返回一个单独的页面,要求用户从可用资源列表中选择另一个资源。

那么是否有可能在任何可以取消对 action 方法调用的操作方法之前运行一个方法,然后做其他事情呢?

最佳答案

查看全局操作过滤器(自 asp.net mvc 3 起可用):http://msdn.microsoft.com/en-us/library/gg416513%28v=vs.98%29.aspx

基本上,在您的 Global.asax 中,您可以在应用程序启动期间(在 Application_Start() 中)全局注册过滤器:

GlobalFilters.Filters.Add(new MyActionFilterAttribute());

然后,您可以覆盖 OnActionExecuting 方法,并使用 RedirectToRouteResult 设置 Result 属性。
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (IsMyResourceAvailable())
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary {
{ "Controller", "YourControllerName" },
{ "Action", "YourAction" }
});
}

base.OnActionExecuting(filterContext);
}

关于asp.net - 在任何操作之前执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8709174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com