在MVC4中使用WebAPI找不到路由

时间:2013-02-12 22:17:57

标签: asp.net-web-api asp.net-web-api-routing

在我的WebApiConfig.cs文件中,我定义了以下路由:(这是此处定义的唯一路径)

config.Routes.MapHttpRoute(
            name: "DefaultApi2",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new {id = RouteParameter.Optional}
            );

我正在制作的POST是:

http://localhost:17138/api/Account/Login

我的控制器是:

namespace WebAPI.Api
{
  public class AccountController : ApiController
  {
    [HttpPost]
    public HttpResponseMessage Login(string username,string password)
    {...

我得到的错误是:

{"Message":"NoHTTPresourcewasfoundthatmatchestherequestURI'http://localhost:17138/api/Account/Login'.","MessageDetail":"Noactionwasfoundonthecontroller'Account'thatmatchestherequest."}

从Phil的程序看起来路线应该有效。有什么想法吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

我将Login方法的参数更改为

public HttpResponseMessage Login(FormDataCollection formDataCollection)

它有效。我似乎缺少一些关于如何处理POST参数的东西,因为在formDataCollection中,用户名和密码都在那里。我不确定那与

不一样
public HttpResponseMessage Login(string username,string password)