asp.net-mvc - 将路线注册到 global.asax 的替代位置

标签 asp.net-mvc routing integration

最常见的做法是在 global.asax.cs/vb 内的 Application_Start 事件中注册路由。文件。但是您需要有权访问此文件才能执行此操作。美好的。

我要么没有,要么不想。我正在尝试将 Asp.net MVC 应用程序集成到 Sharepoint 2010 站点中,并且不想创建我的自定义全局应用程序类,该类也会为我注册路由并更改 Sharepoint 的 Global.asax 文件并在其中放置不同的类定义它。我的申请不会被接受,因为我会对 Sharepoint 做不受支持的事情。

我想知道是否可以在其他地方注册路线?有两种选择首先出现在我的脑海中:

  • 写一个 HttpModule 和滥用应用程序启动事件 也是。这样,我将注入(inject)应用程序启动事件代码,而不会使用我无法访问的 global.asax 进行修改。在 web.config 中添加另一个 HttpModule 是我可以做的。

    Note: Application-level events are not accessible in modules. Bummer. They can only access request-level events.

    Important: ... or so I thought. If you check accepted answer it's actually possible to handle application-level start event. Indirectly and reliably it is possible.

  • 写一个 HttpModule 和滥用其他一些事件喜欢 请求开始 .当然,我还必须在某个地方保留一些数据,这些数据表明我的路线已经注册,并且注册只会在第一次发生。

  • 有没有更好的方法/地方来注册路线?

    最佳答案

    也许这篇文章对你有用

    http://haacked.com/archive/2010/01/17/editable-routes.aspx

    您可以使用 HTTP 模块在 RouteTable.Routes RouteCollection 对象上设置路由。

    关于asp.net-mvc - 将路线注册到 global.asax 的替代位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342158/

    相关文章:

    c# - 重构代码,使顶级实体的行为像一个上下文

    c# - IIS - 线程池设置 machine.config 与 web.config

    jQuery.Ajax 与 MVC

    zend-framework - ZF2 路由与 ZF1 相同

    c# - asp.net core 3 MVC 上的模型绑定(bind)属性为 null

    php - 如何使用路由在没有 GET 参数的情况下重定向?

    php - 使用 Laravel 重定向到没有获取参数的路由

    json - CakePHP3 集成测试和 json 数据

    javascript - 动态加载的 AngularJS 应用程序

    php - Socket.IO 实时聊天的 nodeJS 和 PHP (Laravel) 集成