C# web api路由和http post

C# web api路由和http post,c#,.net,asp.net-web-api2,asp.net-web-api-routing,C#,.net,Asp.net Web Api2,Asp.net Web Api Routing,我正在使用WebAPI2构建一个API 我有以下API控制器: [RoutePrefix("api/account")] public class AccountController : ApiController { [Route("login")] [HttpPost] public IHttpActionResult AuthenticateUser(string username, string password) { if (string

我正在使用WebAPI2构建一个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函数:

<script>
    $(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();
                }
            });
        });
    });
</script>
如何创建接受HTTP POST的路由


谢谢

对不起,我没有看到这个帖子:

我更新了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();
    }
}

现在一切正常。

您有
login
作为操作名称,但称之为
login
。不确定,但可能是区分大小写的?
[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();
    }
}