Click here to Skip to main content
15,895,746 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
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
   }


What I have tried:

Please how can i pass values to this list
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;
      }
   }
Posted
Updated 19-Nov-18 11:47am

You've define Phonenumbers to be a List but at no point are you creating the list so para.Phonenumbers is always going to be null. You can create a new List in the constructor.

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>();
  }
}
 
Share this answer
 
Your code doesn't make sense because your Phonenumbers property of type List<Phonenumber> will always have an empty value, thus it will never go inside your foreach-loop even if you initialize your List.

Quote:
Please how can i pass values to this list


You don't need a loop to assign values to your List because it's already expecting a type of Phonenumber. What you need to do is simply just like this:

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


You can then assign the phoneNumbers value to your Parameter object like this:

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


To put them altogether, your whole ActionResult method would now look something like this:

C#
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;
}
 
Share this answer
 
v4

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900