[英]Should the ASP.NET Login and Shared Views be Removed when Using AngularJS?
我已經審查了許多使用ASP.NET MVC 5,EF和AngularJS的代碼示例。 根據代碼的時代,我看到了包含共享視圖的示例,例如index.cshtml,還看到了運行index.html的示例。
在我的應用程序中,我需要通過訪問令牌到我們的Web API 2中對用戶進行身份驗證,並且還需要使用第三方社交登錄名。 鑒於需要與ASP.NET Identity交互以處理登錄名,可以拋棄樣板ASP.NET共享視圖嗎? 是否還應刪除樣板帳戶視圖? 最后,我定義了一個用於主頁的WelcomeController,如下所示:
function WelcomeController($scope, $location, authService, ngAuthSettings){
var vm = this;
activate();
function activate() { }
}
我從index.cshtml調用它,如下所示:
<body class="container">
<div data-ng-controller="WelcomeController" id="home">
<div ng-include="~/Scripts/app/appnav.html"></div>
<div class="container">
<div data-ng-view="">
<div ng-include="~/Scripts/app/login.html"></div>
<div ng-include="~/Scripts/app/signup.html"></div>
<div ng-include="~/Scripts/app/welcome.html"></div>
</div>
</div>
</div>
</body>
當我運行該應用程序時 ,Facebook身份驗證后在瀏覽器中加載空白頁面,並顯示以下錯誤:
Uncaught Error: [$injector:nomod]
我的app.js文件包含以下內容:
(function () {
'use strict';
var app = angular.module('app', ['ngResource', 'ngRoute', 'app.video','app.applications', 'app.login', 'app.signup']);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/welcome', {
templateUrl: 'app/welcome.html',
controller: 'WelcomeController',
controllerAs: 'vm',
caseInsensitiveMatch: true
});
$routeProvider.when('/applications', {
templateUrl: 'app/applications/application.html',
controller: 'ApplicationsController',
controllerAs: 'vm',
caseInsensitiveMatch: true
});
$routeProvider.when('/video', {
templateUrl: 'app/video/videos.html',
controller: 'VideoController',
controllerAs: 'vm',
caseInsensitiveMatch: true
});
$routeProvider.when('/login', {
controller: 'LoginController',
templateUrl: 'app/login.html'
});
$routProivder.when('/signup', {
controller: 'SignUpController',
templateUrl: 'app/signup.html'
});
$routeProvider.when('/refresh', {
controller: 'RefreshController',
tempalateUrl: 'app/refresh.html'
});
$routeProvider.when('/token', {
controller: 'TokenManagerController',
templateUrl: 'app/token.html'
});
$routeProvider.otherwise({
redirectTo: '/welcome'
});
}]);
app.config(function ($httpProvider) {
$httpProvider.interceptors.push('authInterceptorService');
});
我認為根本原因是Angular IndexController配置不正確,或者ASP.NET MVC登錄代碼引起沖突。 需要有關最佳分辨率的一些指導,代碼示例將不勝感激。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.