本文介绍了OnActionExecuting标准asp.NET相同呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有MVC.NET的 OnActionExecuting 标准asp.NET等效? ?

我认为这将是的Page_Load ,因为 OnActionExecuting 每次执行一个动作时间(或页面将被称为负载)。但我遇到的问题继承时,我尝试使用的Page_Load来代替。

因为它是非常困难的,使我的解决办法工作了的Page_Load 我想我可能没有最好的解决方案...

他们是否是等价的或足够接近有什么想法?

背景:

我转换了一块的应用MVC3成标准.NET在SharePoint Web部件包。

这里的MVC code我试着翻译,你可以看到它的用户安全位我翻译:

 保护覆盖无效OnActionExecuting(ActionExecutingContext filterContext){            如果(!SiteCacheProvider.ItemCached(enmCacheKey.SiteSetting)){                如果(filterContext.IsImplementedGeneralPrincipal()){
                    IUserProfile USERPROFILE =((IGeneralPrincipal)filterContext.HttpContext.User).UserProfile;                    SiteCacheProvider.ChangeSiteSetting(userProfile.SiteID);
                }
            }            base.OnActionExecuting(filterContext);
        }


解决方案

首先,采取帐户的没有的行动是在ASP.NET,因为模型是不同的(基于事件的) - 有'再没有方法(行为),你可以用,这是所有关于的事件。

二,在ASP.NET中,您可以使用(特别),以便通过添加所需的逻辑,以拦截来袭请求您的应用程序页面。

从MSDN:

For example:

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()
    {
    }
}

这篇关于OnActionExecuting标准asp.NET相同呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-29 15:44