我的asp.net web api是一个独立的应用程序,面对传递json sa参数的问题。我的api方法如下:
[Route("api/UniqueUser/{userInfo}")]
public HttpResponseMessage GetUniqueUserByEmail(string userInfo)
{
}
在上面的参数 userInfo 是一个像bellow
这样的josn{"UserInfo":[{"Id":1,"UserName":"Jxj Bdn","Email":"a@a.com"}]}
当我把它放在我的浏览器中时,网址显示错误
答案 0 :(得分:1)
JSON数据应该放在要反序列化的请求体中,而不是查询字符串/浏览器URL中。
此外,'string userInfo'将无法正常工作。您可以定义一个表示JSON对象参数的类,它将正常工作。
这可行,例如:
public class UserInfo
{
public int Id { get; set;}
public string UserName { get; set;}
public string Email { get; set;}
}
并更改此行:
public HttpResponseMessage GetUniqueUserByEmail(UserInfo userInfo)
编辑:
如果这是某人需要传递的网址,则使用路由:
https://site/api/UniqueUser/1/Jxj Bdn/a@a.com
在你的控制器中:
[Route("api/UniqueUser/{id}/{userName}/{email}")]
public HttpResponseMessage GetUniqueUserByEmail(int id, string userName, string email)
在这里看看如何使用传统的查询字符串参数执行此操作:
http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
我强烈建议使用第一种方法,它会为您提供一个强类型对象,如果细节发生变化则更容易处理,并且您可以获得模型验证中构建的好处。
您是否可以为客户制作简单的HTML表单?