2012-12-23 50 views
3

我建立我的網站使用Asp.Net網頁2和剃刀(C#)。Asp.Net WebPages網站 - 如何添加WebApi控制器

我試圖插入WebApi控制器,所有我得到的是404。控制器是默認的。

我甚至嘗試添加

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

,我仍然得到404

還有什麼呢?

+0

我做到了。 在Global.asax中,你需要添加 <%@導入命名空間= 「System.Web.Routing」 %> <%@導入命名空間= 「System.Web.Http」 %> 而在的Application_Start RouteTable.Routes.MapHttpRoute( 名: 「DefaultApi」, routeTemplate: 「API/{控制器} /(編號)」, 的默認值:新{ID = System.Web.Http.RouteParameter.Optional} ); 現在它工作就像它應該。 它沒有工作,因爲我在Global.asax.cs中嘗試了相同的代碼。 –

回答

3

我做到了。在Global.asax中需要添加

<%@ Import Namespace="System.Web.Routing" %> 
<%@ Import Namespace="System.Web.Http" %> 

而在的Application_Start

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

現在它正在像它應該。它之前沒有工作,因爲我在Global.asax.cs中嘗試了相同的代碼。

1

您可能也可以使用_AppStart.cshtml而不是Global.asax。

@using System.Web.Http 
@{ 
    System.Web.Routing.RouteTable.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = System.Web.Http.RouteParameter.Optional } 
     ); 

} 

我用這個簡單的情況下,獲取信息,但如果它的工作原理完全不敢肯定。

相關問題