【发布时间】:2013-09-04 21:40:38
【问题描述】:
我的 WebAPI 路由定义如下:
config.Routes.MapHttpRoute(
name: "BuildModels",
routeTemplate: "api/build/models/{productLine}/{language}",
defaults: new { controller = "Build", action = "GetModels" }
);
控制器:
public class BuildController : ApiController
{
public async Task<HttpResponseMessage> GetModels(string productLine, string language)
{
// Omitted for brevity, I don't feel it's pertinent
// but if you disagree I will fill this in.
// Nothing has changed in here and it worked before.
return await ...;
}
}
/api/build/models/x/en
[HttpException]: The controller for path '/api/build/models/x/en' was not found or does not implement IController.
at System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
/api/build/models/x/
{"Message":"The arguments value is not valid : {language}"}
我所有的路线都可以正常工作,除了这个单一控制器上的那些,以前可以工作。我显然改变了一些东西,只是不知道是什么。
【问题讨论】:
-
试试 Web Api 路由调试器blogs.msdn.com/b/webdev/archive/2013/04/04/…。
-
如果您使用的是依赖注入器,它也可能与您的依赖注入器有关。
标签: c# asp.net-mvc asp.net-mvc-3 asp.net-web-api