Asp.net mvc ASP.NET MVC URL生成扩展点
ASP.NET MVC中URL生成的扩展点是什么Asp.net mvc ASP.NET MVC URL生成扩展点,asp.net-mvc,url,routing,extensibility,Asp.net Mvc,Url,Routing,Extensibility,ASP.NET MVC中URL生成的扩展点是什么 路由-虚拟路径取决于它 附录1 特别是,我不仅需要控制URL的路径部分,还需要控制主机。我想将我的生成逻辑嵌入到MVC框架中,这样对标准Html.ActionLink方法的任何调用都会涉及到我的逻辑。那太好了。然而,在调查MVC资源时,我不顾一切地想用一种简单的方法实现我的目标。路线几乎就是它的所在。不过,请记住,您可以对Route进行子类化,并提供不使用键/值URI模板的自己的实现 没有什么能阻止你从底层开始编写你自己的解决方案,但是没有太大
特别是,我不仅需要控制URL的路径部分,还需要控制主机。我想将我的生成逻辑嵌入到MVC框架中,这样对标准
Html.ActionLink
方法的任何调用都会涉及到我的逻辑。那太好了。然而,在调查MVC资源时,我不顾一切地想用一种简单的方法实现我的目标。路线几乎就是它的所在。不过,请记住,您可以对Route进行子类化,并提供不使用键/值URI模板的自己的实现
没有什么能阻止你从底层开始编写你自己的解决方案,但是没有太大的意义,因为你已经有了一个可扩展的基础。路由扩展点
- 路线
- 路线约束
- 路由处理程序
我想这可能对你有所帮助。它看起来很直截了当且不复杂。事实上,不可能达到预期的灵活性,因为在URL生成过程中,路由只提供虚拟路径部分。谢谢@Richard,谢谢你的关注。然而,路由没有给我足够的控制。请参阅我的附录1。@Anton-您没有理由不能从路由生成绝对URL,可能是通过包含
siteName
值并查找域。此外,我相信您可以从自定义路由访问主机(或至少是原始请求),以进行解析。@Robert,编写自定义路由,当然,允许我处理所谓的传入路由。但是,传出路由仅限于VirtualPathData
,因此我无法控制生成URL的主机部分。这就是问题所在!我想这可以通过使用自定义路由处理程序来解决。但除此之外,您还必须彻底学习路由,因为您可能还必须编写自己的UrlRoutingHandler。。。