是否可以在 Castle Monorail 中使用 System.Web.Routing?
在为 ASP.NET 构建 Castle MonoRail 应用程序时,是否可以使用 Microsoft(或 Mono)提供的 System.Web.Routing 而不是 MonoRail 路由内容?有关如何实施此解决方案的任何好信息吗?优点和缺点?
Is it possible to use the Microsoft (or Mono) supplied System.Web.Routing instead of the MonoRail routing stuff when building a Castle MonoRail app for ASP.NET? Any good information on how to implement this as a solution? Pros and cons?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是很有可能的。您应该实现 ASP.NET 的
IRouteHandler
,它将在给定的RequestContext
中查找路由数据,然后将数据交给 MonoRail。有几种方法可以做到这一点。我猜想 Server.RewritePath 会起作用,但是您可以更清晰地查找 MonoRail 两个类中的代码,即
MonorailHttpHandlerFactory
和RoutingModuleEx
,以弄清楚如何返回设置您将从IRouteHandler
返回的MonoRailHttpHandler
上需要的东西。至于问题 - 反过来,即从控制器操作生成路由,将非常棘手。
It is quite possible. You should implement ASP.NET's
IRouteHandler
that will look up the route data in the givenRequestContext
, and then hand the data over to MonoRail.That can be done is several ways. I guess that Server.RewritePath will work, but you can more cleanly lookup the code in two classes of MonoRail, namely
MonorailHttpHandlerFactory
andRoutingModuleEx
, to figure out how to return set the needed things on theMonoRailHttpHandler
you'll return from theIRouteHandler
.As for problems - it would be very tricky to to the reverse, i.e. generate routes from controller actions.