Ответ 1
Вы определили свой маршрут с помощью [HttpPost("login/{username}/{password}")]
, но вы не отправляете имя и пароль в URL-адресе, а в теле запроса, чтобы ваш маршрут не соответствовал, поэтому вы получаете 404.
Итак, вам нужно изменить маршрут на [HttpPost("login")]
Сам по себе это не сработает, потому что с Web.API вы не можете иметь несколько аргументов действия, исходящих из тела запроса, поэтому вам нужен сложный тип:
public class LoginInfo {
public string username { get; set; }
public string password { get; set; }
}
Итак, для фиксированного действия должно выглядеть так:
[HttpPost("login")]
[AcceptVerbs("POST")]
public Login Login(LoginInfo loginInfo)
{
Login login = new Login();
if (loginInfo.username == "user" && loginInfo.password == "pw") {
login.Success = true;
} else {
login.Success = false;
}
return login;
}