Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#ASP.NET向单个用户添加属性列表_C#_Asp.net_Asp.net Web Api - Fatal编程技术网

C#ASP.NET向单个用户添加属性列表

C#ASP.NET向单个用户添加属性列表,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,嗨,我正在努力学习如何创建Web ASP.NET应用程序,我一直在努力获得这个结果 { "memberNumber":"1234567890", "forename":"Fred", "surname":"Smith", "products":[ { "name":"Health Ins", "cost":100 }, { "name":"Travel Ins", "cost":150 } ] }

嗨,我正在努力学习如何创建Web ASP.NET应用程序,我一直在努力获得这个结果

{
  "memberNumber":"1234567890",
  "forename":"Fred",
  "surname":"Smith",
  "products":[
    {
      "name":"Health Ins",
      "cost":100
    },
    {
      "name":"Travel Ins",
      "cost":150
    }
  ]
}
我不知道如何为每个成员添加不同的产品名称/成本。我可以显示成员编号/姓名/姓氏,但在添加产品时出错。将行添加到成员。添加行

这是我的会员模式:

public class Member
    {
        public int memberNumber { get; set; } = 0;
        public string forename { get; set; } = "";
        public string surname { get; set; } = "";
        public List<Products> products { get; set; }
    }

    public class Products
    {
        public string name { get; set; } = "";
        public int cost { get; set; } = 0;
    }
公共类成员
{
public int memberNumber{get;set;}=0;
公共字符串名{get;set;}=”“;
公共字符串姓氏{get;set;}=”“;
公共列表产品{get;set;}
}
公共类产品
{
公共字符串名称{get;set;}=”“;
公共int成本{get;set;}=0;
}
这是我的控制器:

public class MembersController : ApiController
    {
        List<Member> members = new List<Member>();
        List<Products> products = new List<Products>();

        public MembersController()
        {
            members.Add(new Member { memberNumber = 1234567890, forename = "Fred", surname = "Smith"});
            members.Add(new Member { memberNumber = 1, forename = "Big", surname = "Ben"});
            members.Add(new Member { memberNumber = 2, forename = "Jack", surname = "Ryan" });

            products.Add(new Products { name = "Health Ins", cost = 100 });
            products.Add(new Products { name = "Travel Ins", cost = 150 });
        }
        // GET: api/Members
        public List<Member> Get()
        {
            return members;
        }

        // GET: api/Members/5
        public Member Get(int id)
        {
            return members.Where(x => x.memberNumber == id).FirstOrDefault();
        }
    }
public类成员控制器:ApiController
{
列表成员=新列表();
列表产品=新列表();
公共成员控制器()
{
添加(新成员{memberNumber=1234567890,forename=“Fred”,姓氏=“Smith”});
添加(新成员{memberNumber=1,forename=“Big”,name=“Ben”});
添加(新成员{memberNumber=2,forename=“Jack”,姓氏=“Ryan”});
添加(新产品{name=“Health Ins”,成本=100});
添加(新产品{name=“旅行社”,成本=150});
}
//获取:api/成员
公共列表Get()
{
返回成员;
}
//获取:api/Members/5
公共成员Get(int-id)
{
返回members.Where(x=>x.memberNumber==id).FirstOrDefault();
}
}

没有包括Post/Put/Delete RESTful服务。

您已经基本做到了,但是您需要为每个成员分配一个产品列表,如下所示:

  List<Products> p= new List<Products>();
  p.Add(new Products { name = "Health Ins", cost = 100 });
  p.Add(new Products { name = "Travel Ins", cost = 150 });    
  members.Add(new Member { memberNumber = 1234567890, forename = "Fred", surname = "Smith", Products =p});

 // Second member
  p= new List<Products>();
  p.Add(new Products { name = "Big Bens products", cost = 222});        
  members.Add(new Member { memberNumber = 1, forename = "Big", surname = "Ben", Products =p});
List p=newlist();
p、 添加(新产品{name=“Health Ins”,成本=100});
p、 增加(新产品{name=“旅行社”,费用=150});
添加(新成员{memberNumber=1234567890,forename=“Fred”,姓氏=“Smith”,Products=p});
//第二名成员
p=新列表();
p、 添加(新产品{name=“Big Bens产品”,成本=222});
添加(新成员{memberNumber=1,forename=“Big”,姓氏=“Ben”,Products=p});
因此,您可以添加任意多个包含任意多个产品的成员。请注意,我们谈论的不是ArrayList,而是列表。ArrayList早就被弃用了

products.Add(new Products { name = "Health Ins", cost = 100 });
products.Add(new Products { name = "Travel Ins", cost = 150 });
将在中添加这些数据

List<Products> products = new List<Products>();
MembersController
构造的数据如下所示

public class MembersController : ApiController
{
    List<Member> members = new List<Member>();
    public MembersController()
    {
        var member1 = new Member { memberNumber = 1234567890, forename = "Fred", surname = "Smith"};
        var member2 = new Member { memberNumber = 1, forename = "Big", surname = "Ben"};
        var member3 = new Member { memberNumber = 2, forename = "Jack", surname = "Ryan" };
        member1.products.Add(new Products { name = "Health Ins", cost = 100 });
        member1.products.Add(new Products { name = "Travel Ins", cost = 150 });

        members.Add(member1);
        members.Add(member2);
        members.Add(member3);
    }
    // GET: api/Members
    public List<Member> Get()
    {
        return members;
    }

    // GET: api/Members/5
    public Member Get(int id)
    {
        return members.Where(x => x.memberNumber == id).FirstOrDefault();
    }
}
public类成员控制器:ApiController
{
列表成员=新列表();
公共成员控制器()
{
var member1=新成员{memberNumber=1234567890,forename=“Fred”,name=“Smith”};
var member2=新成员{memberNumber=1,forename=“Big”,name=“Ben”};
var member3=新成员{memberNumber=2,forename=“Jack”,姓氏=“Ryan”};
member1.products.Add(新产品{name=“Health-Ins”,成本=100});
member1.products.Add(新产品{name=“Travel-Ins”,成本=150});
成员。添加(成员1);
增加(成员2);
增加(成员3);
}
//获取:api/成员
公共列表Get()
{
返回成员;
}
//获取:api/Members/5
公共成员Get(int-id)
{
返回members.Where(x=>x.memberNumber==id).FirstOrDefault();
}
}

每个成员都有一个
列表
。因此,您需要将您的产品添加到该列表中,而不是添加到本地产品列表中。例如,若要向第一个成员添加产品,必须编写成员[0]。产品=产品;当然,不同的成员可以有不同的产品列表。将您命名的
产品
重命名为
产品
可能有助于避免混淆。每个实例代表单个产品,因此
列表
实际上就是
成员.products
public class MembersController : ApiController
{
    List<Member> members = new List<Member>();
    public MembersController()
    {
        var member1 = new Member { memberNumber = 1234567890, forename = "Fred", surname = "Smith"};
        var member2 = new Member { memberNumber = 1, forename = "Big", surname = "Ben"};
        var member3 = new Member { memberNumber = 2, forename = "Jack", surname = "Ryan" };
        member1.products.Add(new Products { name = "Health Ins", cost = 100 });
        member1.products.Add(new Products { name = "Travel Ins", cost = 150 });

        members.Add(member1);
        members.Add(member2);
        members.Add(member3);
    }
    // GET: api/Members
    public List<Member> Get()
    {
        return members;
    }

    // GET: api/Members/5
    public Member Get(int id)
    {
        return members.Where(x => x.memberNumber == id).FirstOrDefault();
    }
}