1) Let’s say I’ve a class MyDataInfo:
public class MyDataInfo
{
public int MyDataInfoID { get; set; }
public string Name { get; set; }
}
For the purpose of the functionality I’m after, I’ve created another class (MyData) whose property members are of MyDataInfo type.
2) Here’s MyData
public class MyData
{
public MyDataInfo Prop1 { get; set; }
public MyDataInfo Prop2 { get; set; }
}
3) And, here’s my action method
public ActionResult MyAction()
{
MyData myObject = new MyData();
return View(myObject);
}
4) Finally, this in my View template (which is strongly typed and inherits from MyData)
<%= Html.Encode (Model.Prop1.Name) %>
<%= Html.Encode (Model.Prop2.Name) %>
Unfortunately, I got an error “Object not set to an instance of an object.”
Am I missing something or is there a different way of obtaining the same result?
You’ve instantiated
MyData, but notProp1andProp2which you are trying to access in the view (Prop1is null, soModel.Prop1.Namewill throw an exception). You will need to instantiate these properties:This could also be done in the constructor of MyData: