asp.net-mvc-4 – 如何开发一个ASP.NET Web API接受一个复杂的对象作为参数?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-4 – 如何开发一个ASP.NET Web API接受一个复杂的对象作为参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下Web API(GET):
public class UsersController : ApiController
{
    public IEnumerable<Users> Get(string firstName,string LastName,DateTime birthDate)
    {
         // Code
    }
}

这是一个GET,所以我可以这样调用

http://localhost/api/users?firstName=john&LastName=smith&birthDate=1979/01/01

并接收用户的xml结果。

是否可能将参数封装到一个类如下:

public class MyApiParameters
{
    public string FirstName {get; set;}
    public string LastName {get; set;}
    public DateTime BirthDate {get; set;}
}

然后有:

public IEnumerable<Users> Get(MyApiParameters parameters)

我试过它,并且任何时候我尝试从http:// localhost / api / users?firstName = john& lastName = smith& birthDate = 1979/01/01获得结果,参数为null。

解决方法

默认情况下,复杂类型是从body读取的,这就是为什么你得到null。

将您的操作签名更改为

public IEnumerable<Users> Get([FromUri]MyApiParameters parameters)

如果你想要模型绑定器从querystring拉模型。

您可以阅读更多关于Web API如何参数绑定在Mike Stall从MSFT – http://blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx的优秀文章

猜你在找的asp.Net相关文章