我刚刚在我的项目中添加了一个新的Web API控制器。现在,我正在尝试从JavaScript调用该控制器。但是首先,我也有兴趣手动调用路由,但是没有任何结果。它显示“页面未找到”。
我的RegisterRoutes方法如下所示:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "DefaultApi",
url: "api/{controller}/{id}",
defaults: new { id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我的API控制器名为FlightsController:
public class FlightsController : ApiController
{
public IEnumerable<FlightViewModel> GetAllFlights()
{
return new List<FlightViewModel>() { new FlightViewModel() { Name = "Some Flight" }};
}
}
我正在尝试使用以下网址访问它:
http://localhost:54907/api/flights // The resource not found
http://localhost:54907/MyProject/api/flights // resource not found
api/flights // name not resolved
我做错了什么?
版本:我在控制器目录中添加了一个名为“Web API Controller Class (v2.1)”的新文件。
更新:这是我的更新后的web.config文件。
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalConfiguration.Configure(WebApiConfig.RegisterRoutes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
RegisterRoutes(..)
函数? - janhartmann