web api路由和httppost

我正在使用WEB API 2构建API。

我有以下API控制器:

[RoutePrefix("api/account")] public class AccountController : ApiController { [Route("login")] [HttpPost] public IHttpActionResult AuthenticateUser(string username, string password) { if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { return BadRequest("You must submit username and password"); } if (!Membership.ValidateUser(username, password)) { return BadRequest("Incorrect username or password"); } FormsAuthentication.SetAuthCookie(username, true); return Ok(); } } 

和jquery函数:

  $(document).ready(function () { $("#login-form").submit(function (e) { e.preventDefault(); var username = $('#username').val(); var password = $('#password').val(); $.ajax({ type: 'POST', url: '/api/account/Login/', data: { username: username, password: password }, success: function() { location.reload(); } }); }); });  

当我提交登录表单时,我在Google Chrome控制台中收到以下错误:

 POST http://localhost:60898/api/account/Login/ 404 (Not Found) 

如何创建接受HTTP POST的路由?

谢谢!

对不起,我没看到这篇文章: WebAPI – 属性路由POST不能与WebAPI Cors一起使用?

我像这样更新了我的API控制器:

 [RoutePrefix("api/account")] public class AccountController : ApiController { public class LoginInfo { public string username { get; set; } public string password { get; set; } } [Route("login")] [HttpPost] public IHttpActionResult AuthenticateUser(LoginInfo loginInfo) { if (string.IsNullOrEmpty(loginInfo.username) || string.IsNullOrEmpty(loginInfo.password)) { return BadRequest("You must submit username and password"); } if (!Membership.ValidateUser(loginInfo.username, loginInfo.password)) { return BadRequest("Incorrect username or password"); } FormsAuthentication.SetAuthCookie(loginInfo.username, true); return Ok(); } } 

现在一切正常。