将网站URL传递到ASP.NET MVC中的Route
-
05-07-2019 - |
题
我正在开发一个需要获取实际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,那么欢迎提出意见。
不隶属于 StackOverflow