加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 用于Bookmarked Angular SPA URL的ASP.NET MVC 4

发布时间:2020-12-16 03:34:51 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试在AngularJS中构建单页面应用程序,并在 HTML5模式下完成客户端路由.如果用户曾在我的网站上为页面添加书签,我理解我需要一个基本的服务器端路由方案,但我真的希望它只是总是提供我的单个主页并将相同的URL传播到客户端路由部分. 这个包罗万象的路
我正在尝试在AngularJS中构建单页面应用程序,并在 HTML5模式下完成客户端路由.如果用户曾在我的网站上为页面添加书签,我理解我需要一个基本的服务器端路由方案,但我真的希望它只是总是提供我的单个主页并将相同的URL传播到客户端路由部分.

这个包罗万象的路线完美适用于只有一个深度的简单URL:

routes.MapRoute(
    "Default",// Route name
    "{*catchall}",// URL with parameters
    new { controller = "Home",action = "Index" } // Parameter defaults
);

示例网址:

http://myapp.com/moreInfo
http://myapp.com/contactUs

“moreInfo”和“contactUs”只是Angular中的命名路由.单页应用程序的唯一真正入口点是http://myapp.com.到目前为止,这一切都非常顺利.

但是,当我尝试深入到多个路径时,应用程序会进入无限循环:

http://myapp.com/user/5

这是因为我的服务器端路由不足以将“user / 5”URL“传递”到我的客户端应用程序吗?我是否需要做一些特别的事情以确保无论URL的嵌套程度如何,它都会正确地传递给我的SPA?

解决方法

问题不在于路由配置,我有一个类似于角度js和mvc 4的设置,下面的路由工作正常.

routes.MapRoute(
  name: "Application",url: "{*url}",defaults: new { controller = "Home",action = "Index" },namespaces: new[] { "MyApp.Web.Controllers" });

你是否在angular config方法中将html5Mode设置为true?

$locationProvider.html5Mode(true);

您可以尝试使用fiddler向您的应用发送get请求并查看响应.如果是301或302,那么您将遇到服务器端重定向循环问题.如果它是200,那么你的angular / js代码可能是问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读