CodeGo.net>当类的属性成员不是原始类型时,如何实例化一个类?
作者:互联网
1)假设我有一个MyDataInfo类:
public class MyDataInfo
{
public int MyDataInfoID { get; set; }
public string Name { get; set; }
}
为了实现我所追求的功能,我创建了另一个类(MyData),其属性成员为MyDataInfo类型.
2)这是MyData
public class MyData
{
public MyDataInfo Prop1 { get; set; }
public MyDataInfo Prop2 { get; set; }
}
3)这是我的操作方法
public ActionResult MyAction()
{
MyData myObject = new MyData();
return View(myObject);
}
4)最后,这在我的View模板中(该模板是强类型的,并且继承自MyData)
<%= Html.Encode (Model.Prop1.Name) %>
<%= Html.Encode (Model.Prop2.Name) %>
不幸的是,我收到一个错误“对象未设置为对象的实例”.
我是否缺少某些东西,或者是否有其他方法获得相同的结果?
解决方法:
您已经实例化了MyData,但没有实例化要在视图中尝试访问的Prop1和Prop2(Prop1为null,因此Model.Prop1.Name将引发异常).您将需要实例化以下属性:
public ActionResult MyAction()
{
var myObject = new MyData
{
Prop1 = new MyDataInfo(),
Prop2 = new MyDataInfo()
};
return View(myObject);
}
这也可以在MyData的构造函数中完成:
public class MyData
{
public void MyData()
{
Prop1 = new MyDataInfo();
Prop2 = new MyDataInfo();
}
public MyDataInfo Prop1 { get; set; }
public MyDataInfo Prop2 { get; set; }
}
标签:c,asp-net-mvc 来源: https://codeday.me/bug/20191210/2099388.html