Angularjs 单击时不会发生任何事情

Angularjs 单击时不会发生任何事情,angularjs,asp.net-web-api2,angularjs-routing,asp.net-web-api-routing,Angularjs,Asp.net Web Api2,Angularjs Routing,Asp.net Web Api Routing,我正在使用webapi 2控制器的角度路由 虽然默认路径加载了正确的数据,但当我单击包含详细信息页面链接的列表中的项目时,不会加载任何数据 浏览器显示了我认为正确的url(),但没有调用DetailsController脚本文件,也没有调用webapi2控制器上的任何方法 这是我的主页: <div class="jumbotron"> <h1>Movies Example</h1> </div> @section scripts {

我正在使用webapi 2控制器的角度路由

虽然默认路径加载了正确的数据,但当我单击包含详细信息页面链接的列表中的项目时,不会加载任何数据

浏览器显示了我认为正确的url(),但没有调用DetailsController脚本文件,也没有调用webapi2控制器上的任何方法

这是我的主页:

<div class="jumbotron">
    <h1>Movies Example</h1>
</div>

@section scripts {
    <script src="~/Scripts/angular.js"></script>
    <script src="~/Scripts/angular-route.js"></script>
    <script src="~/Client/Scripts/atTheMovies.js"></script>
    <script src="~/Client/Scripts/ListController.js"></script>
    <script src="~/Client/Scripts/DetailsController.js"></script>
}

<div ng-app="atTheMovies">
    <ng-view></ng-view>
</div>
以下是创建列表控制器的javascript文件:

(function (app) {
    app.controller("ListController", ['$http', function ($http) {
        var ctrl = this;
        ctrl.message = "Hello World!";
        ctrl.movies = [];
        $http.get("/api/movie")
        .success(function (data) {
            ctrl.movies = data;
        })
        .error(function(status){
            ctrl.message = status;
        });
    }])
}(angular.module("atTheMovies")));
(function (app) {
    app.controller("DetailsController", ['$routeParams', '$http', function ($routeParams, $http) {
        var ctrl2 = this;
        ctrl2.message = "";
        ctrl2.movie = {};

        var id = $routeParams.id;
        $http.get("/api/movie/" + id)
        .success(function(data){
            ctrl2.movie = data;
        }).error(function (status) {
            ctrl2.message = status;
        });
    }])
}(angular.module("atTheMovies")));
以下是用于创建详细信息控制器的javascript文件:

(function (app) {
    app.controller("ListController", ['$http', function ($http) {
        var ctrl = this;
        ctrl.message = "Hello World!";
        ctrl.movies = [];
        $http.get("/api/movie")
        .success(function (data) {
            ctrl.movies = data;
        })
        .error(function(status){
            ctrl.message = status;
        });
    }])
}(angular.module("atTheMovies")));
(function (app) {
    app.controller("DetailsController", ['$routeParams', '$http', function ($routeParams, $http) {
        var ctrl2 = this;
        ctrl2.message = "";
        ctrl2.movie = {};

        var id = $routeParams.id;
        $http.get("/api/movie/" + id)
        .success(function(data){
            ctrl2.movie = data;
        }).error(function (status) {
            ctrl2.message = status;
        });
    }])
}(angular.module("atTheMovies")));
最后是webapi2控制器

public class MovieController : ApiController
{
    private MovieDb db = new MovieDb();

    // GET: api/Movie
    public IQueryable<Movie> GetMovie()
    {
        return db.Movies;
    }

    // GET: api/Movie/5
    [ResponseType(typeof(Movie))]
    public IHttpActionResult GetMovie(int id)
    {
        Movie movie = db.Movies.Find(id);
        if (movie == null)
        {
            return NotFound();
        }

        return Ok(movie);
    }
公共类电影控制器:ApiController
{
private MovieDb=new MovieDb();
//获取:api/电影
公共IQueryable GetMovie()
{
返回db.Movies;
}
//获取:api/Movie/5
[响应类型(电影类型))]
公共IHttpActionResult GetMovie(int id)
{
Movie Movie=db.Movies.Find(id);
如果(电影==null)
{
返回NotFound();
}
返回Ok(电影);
}

您的路线配置中有一个输入错误,即
templatUrl

.when("/details/:id", { templatUrl: "/client/views/details.html" })
应该是

.when("/details/:id", { templateUrl: "/client/views/details.html" })

asp.net部分是否区分大小写?“api/movie”与“api/movie”如果这解决了你的问题,请接受这一正确答案我的问题?我有99个问题,但这不是其中之一。:)没问题。这是一种常见的礼貌:)很高兴我能帮助你。顺便说一句,我想这是我的错。看起来我指的是塞尔吉奥,但实际上我是在问弗兰克。现在我接受了,所以一切都很好。谢谢,真的令人尴尬的
.when("/details/:id", { templateUrl: "/client/views/details.html" })