将网站URL传递到ASP.NET MVC中的Route

时间:2009-03-06 22:21:15

标签: asp.net-mvc routing routes url-routing

我正在开发一个需要获取实际URL并在路径中使用它的项目。我所看到的一切,阅读和测试都允许路线在网站URL之后抓取项目。这是我尝试过的,每次只是说网站是空白的(这可能是因为默认为空白)。你可以告诉我任何骨头允许路由也使用根URL吗?目标是一个网站,它将处理URL并在视图内部将我路由到不同的内容。

这是我尝试过的代码但在localhost之外没有运气

            routes.MapRoute(
            "PageRouter",
            "{site}/{*url}",
            new { controller = "PageRouter", action = "RoutePage", site = "", url = "" }
        );

非常感谢您的帮助。提前致谢

2 个答案:

答案 0 :(得分:0)

如何在控制器的动作中使用HttpContext.Request.RawUrl。我可能在这里遗漏了一些东西。您想要阅读的网址来自哪里?它是当前页面还是其他页面?

答案 1 :(得分:0)

内森的答案是答案的一部分。 HttpContext.Request.RawUrl允许访问此信息,但在Global.asax.cs文件中。这是在Application_BeginRequest事件中完成的。但是诀窍(如果有人知道更优雅的方式,请发表评论),但是我们将使用的Url注入到剩余的路径路径中,以便可以在MapRoute方法中获取它。因此,“http://subdomain.domain.net/url”网站会显示为“http://subdomain.domain.net/subdomain.domain.net/url,因此可以在MapRoute命令的{site}部分中选择。这不会向用户显示,但允许我们根据收到的URL在应用程序内做出决定。这听起来是否合理?如果这样做是为了吸收根URL,这似乎是一种疯狂的方法。