如何在Global.asax中获取Angular视图的完整URL

时间:2015-01-09 14:32:05

标签: javascript asp.net-mvc angularjs

在ASP.NET MVC应用程序中,Request.Url可以访问Global.asax中的网址。

但是对于一个网址类似于http://domain/#/home的Angular应用程序。我们从Request.UrlApplication_BeginRequest获得的Application_EndRequesthttp://domain/。 Angular路线不包括在内。

这是合理的,因为这些路线是在客户端添加的。但是有可能在MVC服务器端获取真实URL的值吗?


更新

选择Matteo作为正确的答案。让我澄清一下。

我一直在尝试这个目的:重写我的网址。

过去,我曾经检查过Request.ApplicationPath并使用字符串函数或内置工具(如VirtualPathUtility)来操作网址。

对哈希部分的需求是有效的,因为查询字符串参数被附加在那里。例如,我有一个这样的网址:

http://[domain]/#/pay/cancel?paymentId=[some guid]

传统观念让我Global.asax访问这些查询参数。我找不到。哈希标记后面的所有内容都被忽略了。

所以正确的方法是在客户端代码中处理url的那部分。我正在使用ui-router。因此,对于网址重写/重定向,请使用stateProvider.when(oldUrl, newUrl);。要访问查询参数,请使用$state.params

经验教训:思考清楚,以不同的心态处理不同的问题。

1 个答案:

答案 0 :(得分:1)

没有办法,因为网址的“哈希”部分实际上不是网址的一部分。您是否曾在页面中使用锚点来创建索引?这个概念是一样的。

无论如何,我无法想象哈希部分如何成为有用的服务器端。我的猜测是你认为它很有用,因为你正在以错误的方式解决问题。

如果您通过更多细节补充您的问题,例如您要实现的目标,我们很可能会为您提供合适的解决方案。