gpt4 book ai didi

asp.net-mvc - 带有书签的 Angular SPA URL 的 ASP.NET MVC 4 路由

转载 作者:行者123 更新时间:2023-12-03 18:50:24 28 4
gpt4 key购买 nike

我正在尝试在 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?

最佳答案

问题不在于路由配置,我对 angular js 和 mvc 4 有类似的设置,下面的路由工作正常。

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

您是否在 angular 配置方法中将 html5Mode 设置为 true?
$locationProvider.html5Mode(true);

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

关于asp.net-mvc - 带有书签的 Angular SPA URL 的 ASP.NET MVC 4 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19142940/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com