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

标签 asp.net asp.net-mvc

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?
  • 如果不是:什么是最不丑陋的 hack,所以它适用于 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("Write", "Comment")
    http://example.com/comments/write
    Url.Action("Redirect", "ShortUrl", new { code = "gH8x" } )
    http://exm.cm/gH8x

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

    最佳答案

    这是某人的博客文章,似乎对您正在尝试做的事情有说明。 MVC Domain Routing

    关于asp.net - 从 RouteBase.GetVirtualPath 返回绝对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25973441/

    相关文章:

    asp.net - 将额外信息与 ASP.NET MVC 成员资格相关联

    c# - 来自 Request.Url.ToString() 的字符串在操作/比较第一个字符时神秘地更改为另一个字符串

    c# - 使用 C# 自动超链接 URL 和电子邮件,同时保留定制标签

    c# - 尝试将文件名添加到字符串末尾时出错 :

    c# - 我如何使用验证来强制 ASP.NET MVC 2 中的属性的唯一性?

    asp.net-mvc - 验证 mvc 页面中隐藏字段的最佳方法是什么?

    asp.net-mvc - ASP.NET/MVC 上的 CultureInfo : Haitian Creole and . NET 3.5?

    asp.net-mvc - asp.net mvc5 web api 2,如何通过 Razor 语法获取我的 web api url?

    javascript - 如何将数据从asp.net传递到javascript

    c# - 修改 CookieAuthenticationOptions LoginPath OnRedirectToReturnUrl 事件