asp.net-mvc - 使用 AngularJS SPA 的服务器端路由

标签 asp.net-mvc angularjs iis routing

我正在使用 ASP.NET MVC、IIS 8 并使用 AngularJS 创建 SPA。我只在我的 MVC 应用程序中定义了这个路由规则,它指向 Home Controller 中的 Index 方法,我的 SPA 所在的地方:

routes.MapRoute(
    name: "DefaultHome",
    url: "",
    defaults: new { controller = "Home", action = "Index" }
);

现在我有一堆客户端 SPA 路由,我希望所有这些路由都可以在没有 hashbang 前缀 #/ 的情况下使用。 html5Mode 完美运行 - 但只有应用已加载时。如果我复制 URL、关闭窗口、打开窗口并将其粘贴进去,我会收到 IIS 404 错误。这是有道理的,因为路由是在服务器上完成的。

所以共享 URL 不起作用,我希望能够做到这一点。所以路由也必须在服务器端完成,但每次我更改路由(添加客户端路由)时,我不想创建服务器端路由规则。

一般情况下可以做到吗?就像 URL 将 /* 重写为 #/* 而不重定向用户一样? /Static 除外。

最佳答案

只需将 url 更改为 "{*catchall}"。像这样:

routes.MapRoute(
    name: "DefaultHome",
    url: "{*catchall}",
    defaults: new { controller ="Home", action= "Index" }
);

关于asp.net-mvc - 使用 AngularJS SPA 的服务器端路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28566675/

相关文章:

asp.net-mvc - ASP.NET MVC 将数据从 View 传递到 Controller

javascript - 在 angularJs 中创建指令

javascript - 如何在 MVC 中使用 AngularJS 上传文件

php - 如何解决 : The FastCGI process exceeded configured request timeout error: on IIS 7. 5

iis - IIS 中 Azure Web 角色 IP 地址的奇怪行为

c# - MVC 单字符串 JSON 帖子在 Controller 中始终为 Null

json - 如何创建具有多个子行(嵌套表)的 jQuery 数据表?

c# - FormMethod.Post 在 MVC4 中返回查询字符串

javascript - 仅针对特定跨度的点击功能

security - 破译此 XSS 攻击