C # ASP.NET добавление списка свойств отдельным пользователям - PullRequest
0 голосов
/ 25 ноября 2018

Привет! Я пытаюсь научиться создавать приложения для веб-ASP.NET, и я застрял, пытаясь достичь этого результата.

{
  "memberNumber":"1234567890",
  "forename":"Fred",
  "surname":"Smith",
  "products":[
    {
      "name":"Health Ins",
      "cost":100
    },
    {
      "name":"Travel Ins",
      "cost":150
    }
  ]
}

Не могу понять, как добавить другое название продукта /стоимость для каждого отдельного участника.Я могу отобразить memberNumber / forename / фамилию, но получаю сообщение об ошибке, когда добавляю строку products.add в строку members.add.

Вот моя модель участника:

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 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();
        }
    }

Не включает службы Post / Put / Delete RESTful.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018
products.Add(new Products { name = "Health Ins", cost = 100 });
products.Add(new Products { name = "Travel Ins", cost = 150 });

добавит эти данные в

List<Products> products = new List<Products>();

вместо ваших ожиданий в Member классе.

Я думаю, вы можете добавить products коллекцию в членвместо другого List

Вы можете использовать Инициализаторы авто-свойств для инициации products Список коллекции в Member классе.

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; } = new List<Products>();
}

the 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();
    }
}
0 голосов
/ 25 ноября 2018

Вы в значительной степени там, но вам нужно будет назначить список продуктов для каждого участника следующим образом:

  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});

Таким образом, вы можете добавить столько участников, сколько вы хотите продуктов.Обратите внимание, что мы говорим не о ArrayLists, а о списках.Списки массивов давно устарели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...