繁体   English   中英

自定义ASP.NET基于回调的路由; 动态ASPX页面实例化和呈现

[英]Custom ASP.NET callback-based routing; dynamic ASPX page instantiation and rendering

我正在做一个小型学校项目,一个ASP.NET C#网站。 我们正在使用Web应用程序,使用Global.asax文件集中请求逻辑。

无论如何,我和我的同事负责我们小组的编码,我们俩都是经验丰富的PHP开发人员。 我们俩都喜欢使用PHP框架Laravel所使用的体系结构样式,使用路由( 与关联的回调 )作为“控制器”,并且( 尽管它是一个方形钉,圆孔问题 )都在尝试为此复制功能。项目。

这不是一件容易的事。 我已将IRouteHandler接口实现为CallbackRouteHandler ,以尝试开始复制此功能:

public class CallbackRouteHandler : IRouteHandler
{
    public Func<RequestContext, IHttpHandler> Callback { get; protected set; }

    public CallbackRouteHandler(Func<RequestContext, IHttpHandler> callback)
    {
        this.Callback = callback;
    }

    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        return this.Callback(requestContext);
    }
}

不幸的是,这与我所知道的差不多。 我正在阅读《 ASP.NET页面生命周期概述》 ,试图更好地理解整个过程。

我们所坚持的是在给定的路由回调范围内以编程方式加载ASPX文件( 而不是实例化为Page对象 )。 我们希望在回调的范围内有一种相当简单的方法可以完成:

// instantiate the target ASPX page object
OurSite.SomeNamespace.SomePage page = new OurSite.SomeNamespace.SomePage();

// manipulate the page object, setting public properties, etc.
page.SomeControl.Text = "Foobar!";

// eventually "render" the file to somehow; at this point, the
// page and it's associated code-behind events take control
page.Render();

我在理解这两种方法时遇到了麻烦: 1)如何做到这一点? 2)何时( 相对于上述页面生命周期 )执行此操作。

一个人如何才能( 如果有的话 )完成这种功能? 我看到被ASP.NET隐藏的此过程看似非常复杂,但是肯定其他人以前已经走过了这条路。

我参加了该项目的MVC,但是从那时起,我就有机会稍微剖析了ASP.NET请求管道,并根据需要实施了自定义路由解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM