我使用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。
还有什么可做的?
答案 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 }
);
}
我已将此用于简单案例以获取信息,但我不确定它是否完全有效。