3

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

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

我什至尝试添加

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

我仍然得到404。

还需要做什么 ?

4

2 回答 2

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 中尝试了相同的代码。

于 2012-12-24T15:06:19.963 回答
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 }
       );

}

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

于 2013-01-11T23:12:34.803 回答