You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AngularJS 1.6.9+ASP.NET Core 2时,pag1Controller未注册报错求助

Fixing "The controller with the name 'pag1Controller' is not registered" in AngularJS 1.6.9 + ASP.NET Core 2

Hey there, let's troubleshoot why your pag1Controller isn't registering properly. I'll break down the most likely issues based on the files you mentioned, along with fixes for each:

1. Verify your controller is registered correctly with your AngularJS module

First, check your pag1Controller.js file. AngularJS 1.6 requires controllers to be explicitly registered with your app module. Make sure it looks something like this:

// If you defined your app module in app.js as 'myApp'
angular.module('myApp')
  .controller('pag1Controller', ['$scope', function($scope) {
    // Your controller logic here
    $scope.message = 'Hello from pag1Controller!';
  }]);

Or if you're using a variable reference from app.js:

// In app.js: var app = angular.module('myApp', []);
app.controller('pag1Controller', ['$scope', function($scope) {
  // Controller logic
}]);

Important: Avoid missing the dependency injection array (['$scope', ...])—this prevents issues when minifying your code, and ensures AngularJS recognizes the controller properly.

2. Check script loading order & paths in your views

In either _Layout.cshtml or Home.cshtml (where you load your scripts), the order matters a lot:

  1. Load AngularJS first
  2. Load your main app module (app.js)
  3. Load your controller (pag1Controller.js)

Example correct loading in _Layout.cshtml:

<!-- At the bottom of your <body> tag for better performance -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="~/js/app.js"></script>
<script src="~/js/pag1Controller.js"></script>
  • Double-check the paths: In ASP.NET Core, ~/ points to the wwwroot folder, so if your JS files are in wwwroot/js, the paths above are correct.
  • Open your browser's DevTools (F12) → Network tab, and confirm none of the JS files return a 404 error. If they do, fix the path.

3. Ensure your view uses the correct AngularJS directives

In pag1.cshtml, make sure you're linking the controller to your app module properly:

  • If your ng-app is defined in _Layout.cshtml (e.g., <html ng-app="myApp">), then just add the controller directive to your container:
    <div ng-controller="pag1Controller">
      {{ message }}
    </div>
    
  • If ng-app is only in pag1.cshtml, include both:
    <div ng-app="myApp" ng-controller="pag1Controller">
      {{ message }}
    </div>
    

Critical: AngularJS is case-sensitive! Make sure pag1Controller is spelled exactly the same everywhere (controller registration, view directive, file name if needed).

4. Confirm your app module is defined correctly in app.js

Your app.js must define the module (not just retrieve it). It should look like this:

// Defines the 'myApp' module with no dependencies
angular.module('myApp', []);

If you write angular.module('myApp'); (without the empty array), that tries to retrieve an existing module—if it doesn't exist yet, this will break controller registration.

5. Check ASP.NET Core static file configuration

In your Startup.cs, ensure you've enabled static file serving so your JS files are accessible:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    // ... other middleware (like error handling)
    app.UseStaticFiles(); // This line is required to serve files from wwwroot
    // ... other middleware (like routing)
}

Without UseStaticFiles(), ASP.NET Core won't serve your JS/CSS files from wwwroot, leading to failed script loads.

Walk through these steps one by one—most likely, the issue is either a missing script reference, incorrect module registration, or a typo in the controller name.

内容的提问来源于stack exchange,提问作者luciano cba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:26:17