- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
标准 asp.NET 中是否有 MVC.NET 的 OnActionExecuting
等效项? ?
我认为它会是 Page_Load
,因为每次执行操作(或加载页面)时都会调用 OnActionExecuting
。但是当我尝试改用 Page_Load 时遇到了继承问题。
因为让我的解决方案与 Page_Load
一起工作非常困难,我想我可能没有最好的……解决方案。
关于它们是否等效或足够接近的任何想法?
背景:
我正在将 MVC3 应用程序的一部分转换为标准 .NET 以包装在 SharePoint Web 部件中。
这是我正在尝试翻译的 MVC 代码,您可以看到我正在翻译的用户安全位:
protected override void OnActionExecuting(ActionExecutingContext filterContext) {
if (!SiteCacheProvider.ItemCached(enmCacheKey.SiteSetting)) {
if (filterContext.IsImplementedGeneralPrincipal()) {
IUserProfile userProfile = ((IGeneralPrincipal)filterContext.HttpContext.User).UserProfile;
SiteCacheProvider.ChangeSiteSetting(userProfile.SiteID);
}
}
base.OnActionExecuting(filterContext);
}
最佳答案
首先,考虑到 没有 操作在 ASP.NET 中,因为模型不同(基于事件)- 没有可以用 Action Filters 修饰的方法(操作) , 这都是关于 Page-Cycle事件。
其次,在 ASP.NET 中,您可以使用 HTTP modules (特别是 HttpApplication.BeginRequest
),以便通过添加所需的逻辑来拦截对应用程序页面的传入请求。
来自 MSDN:
HTTP Modules use to intercept HTTP requests for modifying or utilize HTTP based requests according to needs like authentication, authorization, session/state management, logging, modifying Response, URL rewriting, Error handling, Caching....
例如:
using System;
using System.Web;
using System.Collections;
public class HelloWorldModule : IHttpModule
{
public string ModuleName
{
get { return "HelloWorldModule"; }
}
public void Init(HttpApplication application)
{
application.BeginRequest += (new EventHandler(this.Application_BeginRequest));
application.EndRequest += (new EventHandler(this.Application_EndRequest));
}
private void Application_BeginRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("<h1>HelloWorldModule: Beginning of Request</h1><hr>");
}
private void Application_EndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
context.Response.Write("<hr><h1>HelloWorldModule: End of Request</h1>");
}
public void Dispose()
{
}
}
关于c# - 标准 asp.NET 中的 OnActionExecuting 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16779970/
我想添加一些代码来记录 Controller 中每个 Action 调用所花费的时间。我看到了在 Controller 的 OnActionExecuting 方法中创建一个 Stopwatch 并停
有没有办法在不使用 session 变量的情况下从 OnActionExecuted 的 MVC 操作中获取 HTTP 状态代码? 最佳答案 有几种方法可以访问它。主要是通过 ActionExecut
我有以下内容: public override void OnActionExecuting(ActionExecutingContext filterContext) {
我创建了一个 ActionFilterAttribute,用于在允许处理 MVC Controller get/post 请求之前验证帐户是否可用于处理。如果该帐户不可用,我想向客户返回错误。如果请求
使用 .NET 核心 MVC C# 我有一个 Controller : [ServiceFilter(typeof(MyCustomFilter))] public class HomeControl
我想知道如何在 OnActionExecuting 覆盖方法中检查 Controller 方法是否具有特定属性,例如 AllowAnonymous。 我试过这个: var methodAttr = A
如果这很明显,我深表歉意,但我正在尝试创建一个属性来处理局部 View 中使用的模型的缓存。 [MyCache(typeof(MyModel))] public ActionResult My
我正在尝试对自定义 ActionFilterAttribute 进行单元测试。例如: public class ActionAuthorizationAttribute: ActionFilterAt
我正在尝试重定向未通过 OnactionExecuting() 进行身份验证的访问者,以便它覆盖我的整个 Controller ,但它几乎就像被完全跳过一样。是否可以从 OnActionExecuti
我制作了一个实现了 OnActionExecuted 方法的 ActionFilterAttribute。也就是说,它在 Action 方法之后运行。但是,在某些情况下,我希望 OnActionExe
我的网址如下所示: www.example.com/{languagecode}/{controller}/{action}/{id} 其中语言代码是 en-us 等。 从 OnActionExecu
我们正在尝试实现一个非托管 header ,它将接受 *.website.com 之前的任何内容|在 ASP.NET 中。由于它将接受任何子域,因此我们扩展了 HttpContextBase 类以添加
我创建了一个基本 Controller ,我的每个 Controller 都继承了它。在这个 Controller 中,我有 OnActionExecuting 方法。我用它来检查一些参数的 url。
如果用户 session 超时,我正在尝试在我的 BaseController 中使用 OnActionExecuting 来处理重定向到登录屏幕。然而,它甚至在我登录之前就导致无限重定向 - 谁能建
在我的 MVC 4 网络应用程序中,我要求用户在使用该应用程序一定天数后选择一种付款方式。 我通过创建一个 Controller 基类并使我所有的 Controller 都继承自它来实现它。基类有如下
如果某些 session 变量为空,我会有点困惑,我想生成一个局部 View 而不是 redirectResult。是否可以?如果是这样怎么办?我可以看到有一个 PartialViewResult,但
我有多个 ASP.NET MVC 5 项目,它们在页面顶部有标题/菜单,其中 html 完全相同。从数据库中提取了一些菜单项、 Logo 和链接。为了跨项目消除这些冗余代码,我想为标题使用一个共享项目
OnActionExecuted 和 OnResultExecuting 有什么区别?一旦处理完 Action ,它们会立即被解雇,还是在这两种方法之间发生某些事情。就像 View 引擎的初始化一样,
我稍微修改了默认路由规则,如下所示: routes.MapRoute( "Default", // Rou
我搜索了高低,似乎找不到直接的答案。 如果我有自定义属性/过滤器,OnActionExecuted 是否会出现?方法总是被调用?即使有异常抛出? 最佳答案 至少在 MVC 5 中,@tvanfosso
我是一名优秀的程序员,十分优秀!