我有一个webapi控制器,以下是post方法。
public HttpResponseMessage Register(string email, string password)
{
}
如何从浏览器进行测试?
当我使用以下内容从浏览器测试它时,它没有击中控制器。
http://localhost:50435/api/SignUp/?email=sini@gmail.com&password=sini@1234
它给了我以下错误。
你能帮我吗???无法将多个参数(' id'和#39;密码')绑定到请求中 内容。
答案 0 :(得分:0)
您收到错误,因为您无法以这种方式将多个参数传递给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"
}
<强>更新强>
如果您想从URL获取数据,则可以使用属性路由。
[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
中启用属性路由
如果您使用这种方式,则会出现安全问题。