微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – 从RouteBase.GetVirtualPath返回绝对路径

public class Customroute : RouteBase
{
    public override VirtualPathData GetVirtualPath(RequestContext requestContext,RouteValueDictionary routeValues)
    {
        var virtual_path_data = new VirtualPathData( this,"http://example.com" );

        return virtual_path_data;
    }
}

ASP.NET自动似乎在从VirtualPathData返回的任何(绝对)路径中添加一个前导斜杠,在此示例中返回/http://example.com.

题:

>是否可以通过RouteBase系统生成绝对URL?
>如果不是:什么是最不丑的黑客,所以它适用于Url.Action,RedirectToAction和我不知道的其他用例.

背景

我编写了一个基于XML的路由引擎,它支持多个域名.因此,当我生成仅在其他域上可用的URL时,我想生成一个绝对URL,包括域名.

<host name="exm.com" controller="ShortUrl">
    <parameter name="code" action="Redirect" />
</host>  

<host name="*" default="example.com" controller="Home" action="Index">
    <x name="demo" controller="Home" action="Demo" />
    <x name="comments" controller="Comment" action="List">
        <x name="write" action="Write" />
        <x name="delete" action="Delete" />
    <x>
</host>

导致组合如下:

Url.Action(“Demo”,“Home”)

http://example.com/demo

Url.Action(“写”,“评论”)

http://example.com/comments/write

Url.Action(“Redirect”,“ShortUrl”,new {code =“gH8x”})

http://exm.cm/gH8x

请注意,example.com和exm.com都指的是相同的应用程序IP,并在应用程序中路由.

解决方法

这是一篇关于某人的博客文章,似乎有关于你正在尝试做什么的说明. MVC Domain Routing

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐