MVA3中的WebApi,无法命中我的API控制器(500内部错误)

时间:2012-08-08 18:33:59

标签: asp.net-mvc-3 asp.net-web-api routes

我在AreaRegistration中映射了以下路线:

public override void RegisterArea(AreaRegistrationContext context)
    {
        if (context != null)
        {
            context.Routes.MapHttpRoute(
                name: "API_Default",
                routeTemplate: "Areas/Test/AIO/api/{controller}/{id}",
                defaults: new
                {
                    id = RouteParameter.Optional
                });

当我查看Global.asax文件时,我可以看到HttpRoute正在注册,并在RouteTable.Routes中列为{System.Web.Http.WebHost.Routing.HttpWebRoute}。

问题是,当我转到网址... https://myRoot/Areas/Test/AIO/api/AioApi/testhttps://myRoot/Areas/Test/AIO/api/AioApi时,它会给我500个内部服务器错误。

我不确定如何查看实际错误,在单步执行代码后,在它离开Application_BeginRequest后看不到任何内容。

我的控制器代码:

public class AioApiController : ApiController
{
    // GET api/<controller>
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

有关为什么我无法点击API控制器的任何见解?我可以在相同的上下文中点击我的常规MVC控制器。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我在WebApi中发现的一件事是有两个Route集合:System.Web.Routing.RouteCollectionSystem.Web.Http.HttpRouteCollection。我相信(但不记得)你需要使用后者才能使你的ApiController推导正常工作(幸运的是语法是相同的)。