AngularJS + MVC - 错误404刷新页面

时间:2016-12-30 09:30:16

标签: asp.net angularjs asp.net-mvc

我正在使用AngularJS(v1.4.9)+ ASP.NET MVC开发Web应用程序。

我已经为漂亮的链接启用了html5mode,但是我遇到了这个问题:当我浏览应用程序的第一页(登录)并尝试刷新该页面时,例如使用F5按钮,我收到404错误。

我已经在StackOverflow上搜索并发现了这个讨论:Angularjs html5Mode page refresh breaks the routing in asp.net mvc它看起来与我的场景完全一样。但建议的解决方案对我不起作用。

这就是我现在所做的:

的web.config

<rewrite>
     <rules>
       <rule name="AngularJS Routes" stopProcessing="true">
         <match url=".*" />
         <conditions logicalGrouping="MatchAll">
           <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
           <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
         </conditions>
         <action type="Rewrite" url="/" />
       </rule>
     </rules>
   </rewrite>

_layout.cshtml

<base href="/">

app.js

.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
   $routeProvider
       .when('/', {
           templateUrl: '/MyAppView/Login'
       })
       .when('/Login', {
           templateUrl: '/MyAppView/Login'
       })
       .when('/Home', {
           templateUrl: '/MyAppView/Home'
       })
       [...]

       .otherwise('/Login')

   $locationProvider.html5Mode({
       enabled: true
   })
}

也尝试在

中使用此代码

RouteConfig

public static void RegisterRoutes(RouteCollection routes)
{
       routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
       routes.MapRoute(
       name: "Default",
       url: "{*url}",
       defaults: new { controller = "Home", action = "Index" });
}

每当我在VS上开始调试时,我的浏览器都会加载模板(例如背景图片),但在加载登录视图之前它会崩溃。我尝试过使用Chrome / IE11 / Edge。

0 个答案:

没有答案