wizklaus Ответов: 2

Ассинг значений в список"объект"в классе модели


public class Parameter
{
  public int Id {get;set;}
  public string name {get;set;}
  public List<Phonenumber> Phonenumbers{get;set}
}

public class Phonenumber
{
  public string number1 {get;set;}
  public string number2 {get;set;}
  public string number3 {get;set;}
}


public ActionResult SmeDirPage(Phonenumber number)
   {
      Parameter para = new Parameter ();

      // How do i assign value to para.Phonenumbers.number1
   }


Что я уже пробовал:

Пожалуйста, как я могу передать значения в этот список
public ActionResult SmeDirPage(Phonenumber number)
   {
      Parameter para = new Parameter ();
      foreach(var item in para.Phonenumbers) // Error **Object reference not set to an instance of an object**
      {
        item.number1 = number.number1;
        item.number2 = number.number2;
        item.number3 = number.number3;
      }
   }

2 Ответов

Рейтинг:
5

Vincent Maverick Durano

Ваш код не имеет смысла, потому что ваш Phonenumbers свойство типа List<Phonenumber> всегда будет иметь пустое значение, поэтому оно никогда не войдет внутрь вашего устройства. foreach-loop даже если вы инициализируете свой List.

Цитата:
Пожалуйста, как я могу передать значения в этот список


Вам не нужен цикл для присвоения значений вашим данным. List потому что он уже ожидает своего рода Phonenumber То, что вам нужно сделать, - это просто вот так:

var phoneNumbers = new List<Phonenumber>();
phoneNumbers.Add(numbers);


Затем вы можете назначить phoneNumbers ценность для вашего бизнеса Parameter объект вроде этого:

Parameter para = new Parameter();
para.Id = 1;
para.name = "Vynn Markus";
para.Phonenumbers = phoneNumbers;


Чтобы поместить их в целом, все ваше ActionResult метод теперь будет выглядеть примерно так:

public ActionResult SmeDirPage(Phonenumber numbers)
{
    var phoneNumbers = new List<Phonenumber>();
	phoneNumbers.Add(numbers);
		
	Parameter para = new Parameter();
	para.Id = 1;
	para.name = "Vynn Markus";
	para.Phonenumbers = phoneNumbers;
}


Рейтинг:
2

F-ES Sitecore

Вы определили номера телефонов как список, но ни в коем случае не создаете этот список так, как пара.Телефонные номера всегда будут нулевыми. Вы можете создать новый список в конструкторе.

public class Parameter
{
  public int Id {get;set;}
  public string name {get;set;}
  public List<Phonenumber> Phonenumbers{get;set}
  
  public Parameter()
  {
     this.Phonenumbers = new List<Phonenumber>();
  }
}