加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 07:41:15 所属栏目:asp.Net 来源:网络整理
导读:public class CustomRoute : RouteBase{ public override VirtualPathData GetVirtualPath(RequestContext requestContext,RouteValueDictionary routeValues) { var virtual_path_data = new VirtualPathData( this,"http://example.com" ); return virtual
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读