Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC URL生成扩展点_Asp.net Mvc_Url_Routing_Extensibility - Fatal编程技术网

Asp.net mvc 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模板的自己的实现 没有什么能阻止你从底层开始编写你自己的解决方案,但是没有太大

ASP.NET MVC中URL生成的扩展点是什么

  • 路由-虚拟路径取决于它
  • 附录1

    特别是,我不仅需要控制URL的路径部分,还需要控制主机。我想将我的生成逻辑嵌入到MVC框架中,这样对标准
    Html.ActionLink
    方法的任何调用都会涉及到我的逻辑。那太好了。然而,在调查MVC资源时,我不顾一切地想用一种简单的方法实现我的目标。

    路线几乎就是它的所在。不过,请记住,您可以对Route进行子类化,并提供不使用键/值URI模板的自己的实现

    没有什么能阻止你从底层开始编写你自己的解决方案,但是没有太大的意义,因为你已经有了一个可扩展的基础。

    路由扩展点
    • 路线
    • 路线约束
    • 路由处理程序
    在您的特定情况下,您必须编写自己的路由,以填充与主机相关的其他RoutedData项。解析你的URL将完全取决于你

    “{host}/{controller}/{action}”

    还可以创建自定义路由处理程序,使主机参数成为必需参数。但这已经取决于你的特殊需要

    编辑
    我想这可能对你有所帮助。它看起来很直截了当且不复杂。

    事实上,不可能达到预期的灵活性,因为在URL生成过程中,路由只提供虚拟路径部分。

    谢谢@Richard,谢谢你的关注。然而,路由没有给我足够的控制。请参阅我的附录1。@Anton-您没有理由不能从路由生成绝对URL,可能是通过包含
    siteName
    值并查找域。此外,我相信您可以从自定义路由访问主机(或至少是原始请求),以进行解析。@Robert,编写自定义路由,当然,允许我处理所谓的传入路由。但是,传出路由仅限于
    VirtualPathData
    ,因此我无法控制生成URL的主机部分。这就是问题所在!我想这可以通过使用自定义路由处理程序来解决。但除此之外,您还必须彻底学习路由,因为您可能还必须编写自己的UrlRoutingHandler。。。