我正在尝试发布到以下 Web API:
http://localhost:8543/api/login/authenticate
LoginApi (Web API) 定义如下:
[RoutePrefix("login")]
public class LoginApi : ApiController
{
[HttpPost]
[Route("authenticate")]
public string Authenticate(LoginViewModel loginViewModel)
{
return "Hello World";
}
}
WebApiConfig.cs:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
这是我得到的错误:
Request URL:http://localhost:8543/api/login/authenticate
Request Method:POST
Status Code:404 Not Found
Remote Address:[::1]:8543
最佳答案
您的 Controller 名称“LoginApi”需要以“Controller”结尾,以便框架找到它。例如:“登录 Controller ”
这是一篇很好的文章,它解释了 ASP.NET Web API 中的路由:http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api
关于c# - 找不到 ASP.NET Web API 路由 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36209626/