[angularjs]$stateProvider 使用 asp.net web api

发布时间: 2016/5/14 14:16:58
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在学习 angular web api 和路由有点困。例如我想要显示使用以下 localhost:53967 产品 / 产品。

我的应用程序文件是如下。

(function () {

var productListApp = angular.module("productManagement", ["common.services", "ui.router"]);

productListApp.config(function ($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise("/");//default url


    $stateProvider.state("productList", {
        url: "/products",
        templateUrl: "app/products/productListView.html",
        controller: "ProductListController"
    })

});

})();

我也有 Index.cshtml pageset 如下。

<div class="container">
    <div ng-view></div>
</div>

WebApiConfig

 config.Routes.MapHttpRoute(
            name: "DefaultApi",
             routeTemplate: "api/{controller}/{id}",

            defaults: new { id = RouteParameter.Optional }
        );

这是我 Global.asax 文件

protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

    }

localhost:53967/products返回一个 404。 什么可能是错误?

问候

解决方法 1:

localhost:53967 / 产品返回 404。什么可能是错误?

您可能正在寻找 http://localhost:53967/api/products 而不是 http://localhost:53967/products 。请确保你是符合您的路线声明 ︰

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

你得 api/ 在那边,所以客户端也应该尊重这前缀。

赞助商