私は、ASP.NET MVC、AngularJs、およびWebApi 2.0を使用するプロジェクトに取り組んでいます。私はangularjsからWeb APIコントローラを呼び出しています。私は最初のWeb APIのコントローラを作成する必要があります。 だから私は、次のコードを追加し、global.asax
でstart_applicationを更新:Asp.netのAngularjs MVCプロジェクトweb apiコントローラを呼び出す
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Use camel case for JSON data.
//config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
それから私は、最初のWeb APIコントローラ私はフォルダcontroller
内でそれを作成したが、それは動作しませんでしたし、私はそれが思った(最初の時間を作成しました)MVCルーティングと競合して行くので、私は、フォルダWebApi\Controllers
を作成しました:
[Route("api/Countries")]
public class CountriesController : ApiController
{
[HttpGet]
public IHttpActionResult GetCountries()
{ //<-- Here, I put a breakpoint and never go in
return Ok();
}
}
私はangularjsに工場を作成しました:
intranet
.factory("countriesService", function ($resource, ENDPOINT) {
return {
countries: $resource(ENDPOINT + "api/Countries/")
};
});
と私は、角度コントローラでサービスを呼び出す:
$scope.getCountries = function() {
new countriesService
.countries
.query({ }, getCountriesSuccess, getCountriesError);
};
私は次のエラー得る:
angular.js:9818 GET http://localhost:50407/api/Countries 404(見つかりません)
はい、見つかりませんでした...私はそれがルーティングの問題だと思っています...またはおそらくWeb APIの設定に関する問題 – Ciccio