2

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

这是我尝试过的代码,但在本地主机之外没有运气

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

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

4

2 回答 2

0

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

于 2009-03-09T07:33:42.663 回答
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,则欢迎发表评论。

于 2009-03-10T22:16:52.877 回答