首页 > 解决方案 > 具有复杂类型的 List 属性的 Url 语法

问题描述

模型:

[DataContract]
public class Employee
{
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    [DataMember(Name ="id")]
    public int Id{ get; set; }

    [DataMember(Name = "fullName")]
    public string FullName { get; set; }
}

[DataContract]
public class Department
{
    public Department()
    {
        this.Employees = new List<Employee>();
    }

    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    [DataMember(Name = "id")]
    public int Id { get; set; }

    [DataMember(Name = "name")]
    public string Name { get; set; }

    [DataMember(Name = "employees")]
    public List<Employee> Employees { get; set; }
}

控制器

public HttpResponseMessage Get([FromUri]Department model)
{
   if (ModelState.IsValid)
   {

   }
   return new HttpResponseMessage(HttpStatusCode.OK);

}

网址:http://localhost:2070/home/get/?id=1&name=IT&Employees=1,John

我试图调用上面的 URL 并且模型不读取员工。模型读取其他属性,如 int、double、string、decimal。任何人都可以帮助我通过 URL 传递 List 的正确格式是什么。

另外,我不想用模型绑定器或控制器中的参数来装饰我的每个类。

技术:WebApi、.Net3.5

标签: asp.net-web-api

解决方案


使用 FromUri 和 list/array 时需要指定要绑定的列表和属性的索引

试试这个方法

http://localhost:2070/home/get/?id=1&name=IT&Employees[0].Id=1&Employees[0].Name=John

推荐阅读