使用Web.API Visual Studio项目进行AngularJS路由

时间:2017-08-31 13:38:30

标签: javascript c# angularjs asp.net-web-api

我在VS2017中创建的webapi项目中引入路由时遇到问题。我使用最新的角度。这是来源:

app.angular

angular.module('angularapp', [
'ngRoute',
'ngCookies',
'ngAnimate',
'angular-loading-bar'

])

.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {

    $routeProvider.when('/login', {
            templateUrl: 'login.aspx'
    })

        .when('/', {
            templateUrl: '/login.aspx'
        })

        .when('/404', {
            templateUrl: '/404.aspx'
        })

        .when('/home', {
            templateUrl: '/home.aspx'
        })       

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

    $locationProvider.html5Mode({
        enabled: true,
        requireBase: false
    });
}])

在项目启动时,IIS结果为404.很明显,我加载了角度,然后是ngroute,然后是控制器。有一个母版页我全局加载所有其他页面上的所有css和js都是aspx。每个页面都有一个控制器。我遗失了一些东西o文件中有一些错误?需要其他信息? 谢谢你的帮助

修改

代码修改。 我用这种方式修改了web.confing:

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules></modules>
<handlers>
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <remove name="OPTIONSVerbHandler" />
  <remove name="TRACEVerbHandler" />
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<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" />
        <add input="{REQUEST_URI}" pattern="api/(.*)" negate="true" />
      </conditions>
      <action type="Rewrite" url="/" />
    </rule>
  </rules>
</rewrite>
<defaultDocument>
  <files>
    <clear />
    <add value="login.aspx"/>
  </files>
</defaultDocument>

现在登录正在加载,但我注射模块有问题...我不知道在哪里。如果我正确登录,IIS重新加载始终登录。

0 个答案:

没有答案