我正在開發ASP.NET MVC應用程序。我正在嘗試創建一個基本的API。我通過右鍵單擊控制器,添加 - >控制器,然後選擇「Web API 2 Controller - Empty」,創建了我的第一個Web API控制器。在控制器代碼中,我有以下幾點:無法訪問ASP.NET MVC Web Api端點
namespace MyProject.Controllers
{
public class MyApiController : ApiController
{
public IHttpActionResult Get()
{
var results = new[]
{
new { ResultId = 1, ResultName = "Bill" },
new { ResultId = 2, ResultName = "Ted" }
};
return Ok(results);
}
}
}
當我運行應用程序時,我請在瀏覽器的地址欄中http://localhost:61549/api/myApi
。不幸的是,我得到了404。我只是想創建一個API端點,它返回一組硬編碼的JSON對象。我需要這個來測試一些客戶端JavaScript。我究竟做錯了什麼?
這裏是我如何路由註冊: WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
RouteConfig.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我想你可以只返回IEnumerable,然後返回匿名對象。 – 2014-09-29 14:39:23
@ThomasKoelle IEnumerable是什麼?我認爲IEnumerable需要一個類型。也許我誤解了一些東西。然而,我不認爲你可以說IEnumerable – 2014-09-29 14:55:52
你的api終點其實是'/ api/myapi/get' - 如果你想使用'/ api/myapi',那麼你需要一個'Index()'動作 – Darren 2014-09-29 16:40:52