我遇到了一个让我发疯的问题。
我有一个定义了多个区域的 MVC 4 WebAPI 应用程序。
我的工作区发送控制器 (SendController.cs) 定义如下:
namespace TargetAPI.Areas.Jobs.Controllers
{
public class SendController : ApiController
{
[HttpPost]
public HttpResponseMessage Index(SendRequest req)
{
try
{
//blah blah
}
catch (Exception ex)
{
//blah blah
}
}
}
}
我的工作区注册 (JobsAreaRegistration.cs) 定义如下:
namespace TargetAPI.Areas.Jobs
{
public class JobsAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Jobs";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Jobs_long",
"Jobs/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new[] { "TargetAPI.Areas.Jobs.Controllers" }
);
}
}
}
我的 RouteConfig.cs 说:
namespace TargetAPI
{
public class RouteConfig
{
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 },
namespaces: new string[] { "TargetAPI.Controllers" }
);
}
}
}
当我在其上运行路由调试器时,我得到:(
来源:boomerang.com)
但是当我尝试发布到 URL “Jobs/Send”时,我得到:
找不到路径“/Jobs/Send”的控制器或未实现 IController。
我已经尝试了如此多的迭代和组合,我的头脑在旋转。有任何想法吗?
谢谢!