我正在使用angularjs在.net mvc中开发应用程序。当我不使用html5模式时,它可以正常工作,但是当我将html5模式设置为true时,服务器将调用该地址给我他资源。

这是我的app.js

var app = angular.module("myApp", ['ngRoute'])
.config(function ($routeProvider, $locationProvider) {
    $routeProvider.when('/test',
    {
        templateUrl: 'templates/TestPage.html',
        controller: 'ProfesionalController'
    });

    $routeProvider.otherwise({ redirectTo: '/' });

    $locationProvider.html5Mode(true);


});

这是我的观点(布局):
<!DOCTYPE html>




@Scripts.Render("~/bundles/modernizr")
<script src="~/Scripts/angular/angular.js"></script>
<script src="~/Scripts/angular/angular-route.js"></script>


<script src="~/app/app.js"></script>
<script src="~/app/home/home.js"></script>
<script src="~/app/profesional/profesional.js"></script>
<base href="/">




         <a href="test">Test</a>
         @*this is the link*@

        </div>
    </div>
</div>
<div ng-app="myApp" class="container body-content">
    <div ng-view></div>
    @RenderBody()

</div>

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)


当我单击以测试链接时,服务器尝试找到:
http://localhost:39881/test“给我一个404未找到-http://localhost:39881/test

我所缺少的。它在没有html5模式的情况下运作良好。

最佳答案

当我尝试在应用程序中启用html5模式时,甚至遇到了同样的问题。后来,当我仔细查看整个代码时,我才知道API调用的名称和路由调用是相同的。浏览器变得困惑,而不是调用路由调用,而是调用了api调用。

尝试更改任何一个名称。它应该工作正常。

09-25 18:34