C#ASP.NET向单个用户添加属性列表
嗨,我正在努力学习如何创建Web 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 } ] }
{
"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();
}
}