我正试图让以下路线起作用但有问题。路线api/user/name
运作正常;我得到了结果“Whats up”。
但是,路线api/user/Register
会产生404。
private void ConfigureWebApi(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
控制器:
using System.Web.Http;
using Angular.Data.IServices;
using Angular.Data.Modals;
namespace Angular.Api.Controllers
{
[RoutePrefix("api/user")]
public class UserController : ApiController
{
private IUserService _userService;
[Route("Name")]
[HttpGet]
public string Name()
{
return "Whats up";
}
[Route("Register")]
public IHttpActionResult Register(User usr, string password)
{
_userService.RegisterUser(usr, password);
//var response = Request.CreateResponse<User>(HttpStatusCode.Created, usr);
//string uri = Url.Link("Register", new { id = usr.Id });
//response.Headers.Location = new Uri(uri);
return Ok("response");
}
}
}
答案 0 :(得分:0)
您是否在请求中传递了usr和密码的值?如果没有,那可能就是问题所在。您也可能想要创建一个包含注册所需的所有数据的模型,而不是将usr和密码分成两个参数。
例如,尝试将方法签名更改为:
[Route("Register")]
[HttpGet]
public IHttpActionResult Register(string username, string password)
然后在浏览器中访问api/user/Register/?username=test&password=pwd
,看看它是否有效。