【发布时间】:2015-11-18 19:37:29
【问题描述】:
我的 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}。
问题是,当我转到 url...https://myRoot/Areas/Test/AIO/api/AioApi/test 或 https://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 控制器。
非常感谢任何帮助!
【问题讨论】:
-
WebAPI 是否可用于 MVC3?
-
您的控制器代码只有 1 个方法:Get()?
-
是的,您可以使用 MVC3 安装 WebAPI。我的 api 控制器具有所有标准方法(Get、Post 等)...我只粘贴了我应该点击的那个。
-
你为什么要通过 https?您确定您的程序正在侦听端口 23 并且证书和一切设置正确吗?对于调试,通常更容易通过 http
-
我在一家公司工作,我们使用 https。 Https 适用于其他一切,包括我的常规 MVC 控制器。一切都设置正确......我一直在使用它。
标签: asp.net-mvc-3 asp.net-web-api routes