ASP.NET MVC 中 URL 生成的扩展点是什么?
- 路由 - 虚拟路径取决于它
- ???
附录 1
特别是,我不仅需要控制 URL 的路径部分,还需要控制主机。而且我想将我的生成逻辑嵌入到 MVC 框架中,以便对标准Html.ActionLink
方法的任何调用都会涉及我的逻辑。这将是完美的。但是,在调查 MVC 源时,我迫切希望以一种简单的方式实现我的目标。
ASP.NET MVC 中 URL 生成的扩展点是什么?
附录 1
特别是,我不仅需要控制 URL 的路径部分,还需要控制主机。而且我想将我的生成逻辑嵌入到 MVC 框架中,以便对标准Html.ActionLink
方法的任何调用都会涉及我的逻辑。这将是完美的。但是,在调查 MVC 源时,我迫切希望以一种简单的方式实现我的目标。
路线几乎就是它所在的地方。但请记住,您可以继承 Route 并提供自己的实现,而不使用键/值 URI 模板。
没有什么能阻止您从头开始编写自己的解决方案,但没有什么意义,因为您已经有了一个可扩展的基础供您使用。
在您的特定情况下,您将必须编写自己的路由来填充与主机相关的其他 RouteData 项。解析您的 URL 将完全取决于您。
“{主机}/{控制器}/{动作}”
也许还可以创建您的自定义路由处理程序,这将使主机参数成为必需的。但这已经取决于您的特定需求。
我想这篇关于域路由的文章可能会对你有所帮助。它看起来很简单,很简单。
实际上,由于 Route 在 URL 生成期间只提供 VirtualPath 部分,因此不可能达到所需的灵活性。