我有一个webapi控制器,以下是一个post方法.
public HttpResponseMessage Register(string email,string password) { }
我如何从浏览器进行测试?
当我用浏览器从浏览器测试时,它没有击中控制器.
http://localhost:50435/api/SignUp/?email=sini@gmail.com&password=sini@1234
它给了我以下错误.
Can’t bind multiple parameters (‘id’ and ‘password’) to the request’s
content.
你能帮我么???
解决方法
您收到错误,因为您无法以这种方式将多个参数传递给WebApi.
第一种选择:
您可以通过以下方式创建一个类并从body传递数据:
public class Foo { public string email {get;set;} public string password {get;set;} } public HttpResponseMessage Register([FromBody] Foo foo) { //do something return Ok(); }
第二种选择:
public HttpResponseMessage Register([FromBody]dynamic value) { string email= value.email.ToString(); string password = value.password.ToString(); }
并以这种方式传递json数据:
{ "email":"abc@test.com","password":"123@123" }
更新:
[Route("api/{controller}/{email}/{password}")] public HttpResponseMessage Register(string email,string password) { //do something return Ok(); }
注意:网址应为:http:// localhost:50435 / api / SignUp / sini @ gmail.com / sini @ 1234不要忘记在WebApiConfig中启用属性路由如果使用这种方式,则会出现安全问题.