AngularJS - 在Application_BeginRequest中获取服务器端的URL

时间:2016-10-05 14:24:25

标签: c# asp.net angularjs

我正在构建一个angularJs应用程序,需要在我需要在浏览器中获取当前URL的application_beginrequest。

E.g。 localhost:60607 /#/ login:需要获取/登录 localhost:60607 /#/ activity:需要获取/活动

每当用户点击刷新或再次加载页面并进入beginrequest时,它应该具有相同的响应。

我尝试使用context.Request.Path,但它给出了" /"仅

2 个答案:

答案 0 :(得分:0)

书签不会被浏览器发送到服务器,书签用于在页面内导航。您必须使用javascript获取书签,并使用不同的参数发送它以在服务器端获取该书签值。

答案 1 :(得分:0)

“#”符号之后的数据应该只是客户端(通常浏览器剥离这些部分,应用程序服务器通常会忽略它们)。

如果您的目的是让用户能够使用Angular刷新页面,您可以:

  • 提供同构行为(加载页面服务器端),但如果您使用的是Angular JS ver 1.x并不像您想象的那么简单
  • 提供双重路由行为(*):
    • 避免在网址上使用“#”符号,并为用户提供简单的网址,例如/login/activity
    • 使用角度来管理您的路线客户端,就像您应该已经做的那样
    • 管理您的路由服务器端并在请求时提供正确的视图
    • 您可以尝试使用控制器而不是静态内容集中管理视图管理

使用第二种方法可能更简单,但你会发现:

  • 只有简单的视图才能保持视图状态(我们引入多个UI元素状态的事情变得非常复杂)
  • 管理您必须在客户端/服务器之间找到折衷方案的双重路由