【问题标题】:Url syntax with List property on complex type复杂类型上具有 List 属性的 Url 语法
【发布时间】:2018-06-18 16:55:10
【问题描述】:

型号:

[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


    【解决方案1】:

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

    试试这个方法

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

    【讨论】:

    • 非常感谢。你拯救了我的一天。你能给我一个关于如何从Employees[0].Id=1&amp;Employees[0].Name=JohnEmployees[0]=1,John的提示
    • Np:-) 具有 FromUri 属性,“1,John”无法完成。如果对象太复杂,我会使用 http POST 并使用 FromBody 属性从正文中读取对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    相关资源
    最近更新 更多