Asp.Net WebPages网站 - 如何添加WebApi控制器

时间:2012-12-23 22:45:34

标签: asp.net asp.net-web-api asp.net-webpages

我使用Asp.Net Webpages 2和Razor(C#)构建我的网站。

我尝试插入WebApi控制器,我得到的只是404. Controller是默认控制器。

我甚至尝试添加

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

我仍然得到404。

还有什么可做的?

2 个答案:

答案 0 :(得分: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 :(得分: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 }
       );

}

我已将此用于简单案例以获取信息,但我不确定它是否完全有效。