bla*_*ter 5 asp.net-mvc asp.net-mvc-routing angularjs
我正在尝试在AngularJS中构建单页面应用程序,并在HTML5模式下完成客户端路由.如果用户曾在我的网站上为页面添加书签,我理解我需要一个基本的服务器端路由方案,但我真的希望它只是总是提供我的单个主页并将相同的URL传播到客户端路由部分.
这个包罗万象的路线完美适用于只有一个深度的简单URL:
routes.MapRoute(
"Default", // Route name
"{*catchall}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
示例网址:
http://myapp.com/moreInfo
http://myapp.com/contactUs
Run Code Online (Sandbox Code Playgroud)
"moreInfo"和"contactUs"只是Angular中的命名路由.单页应用程序的唯一真正入口点是http://myapp.com.到目前为止,这一切都非常顺利.
但是,当我尝试深入到多个路径时,应用程序会进入无限循环:
http://myapp.com/user/5
Run Code Online (Sandbox Code Playgroud)
这是因为我的服务器端路由不足以将"user/5"URL"传递"到我的客户端应用程序吗?我是否需要做一些特别的事情以确保无论URL的嵌套程度如何,它都会正确地传递给我的SPA?
小智 10
问题不在于路由配置,我有一个类似于角度js和mvc 4的设置,下面的路由工作正常.
routes.MapRoute(
name: "Application",
url: "{*url}",
defaults: new { controller = "Home", action = "Index" },
namespaces: new[] { "MyApp.Web.Controllers" });
Run Code Online (Sandbox Code Playgroud)
你是否在angular config方法中将html5Mode设置为true?
$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用fiddler向您的应用发送get请求并查看响应.如果是301或302,那么您将遇到服务器端重定向循环问题.如果它是200,那么你的angular/js代码可能是问题.
| 归档时间: |
|
| 查看次数: |
3662 次 |
| 最近记录: |