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

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

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

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

有帮助吗?

解决方案

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

其他提示

内森的答案是答案的一部分。 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,那么欢迎提出意见。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top