我想在功能网站中修改ContentPageBase, 我试图添加一个名为例如(重量)的属性, 但是如果数据库中存在现有页面,则该站点将出现故障,并抛出异常(对象引用未设置为对象的实例)。
如何更正已输入的数据?
public abstract class ContentPageBase : PageBase, ICommentable
{
[EditableTextBox("Weight", 10, ContainerName = Tabs.Details)]
//newly added property.
public virtual int Weight
{
get { return (int)GetDetail("Weight"); }
set { SetDetail("Weight", value); }
}
}
答案 0 :(得分:1)
是的,您在访问该属性时获得空引用,并且DB中没有数据。
旧N2CMS中的getter必须是
get { return (int)(GetDetail("Weight") ?? 0); }
如果你当然想要0作为默认值。
最好的关注
答案 1 :(得分:0)
我想出了如何解决这个问题, 只需删除属性的Getters和Setter,然后像这样使用它:
public virtual int Weight { get; set;}
这是N2Cms 2.0中的新功能。
当您为新添加的属性赋予新值时,N2cms会为该页面添加N2Detail表的新记录。