0

我想修改 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); }
        }
}
4

2 回答 2

1

是的,您在访问该属性时会得到一个空引用,并且 DB 中不存在任何数据。

旧 N2CMS 中的 getter 必须是

 get { return (int)(GetDetail("Weight") ?? 0); }

当然,如果您希望 0 作为默认值。

最良好的问候

于 2011-01-13T20:17:41.717 回答
0

我想出了如何解决这个问题,只需删除属性的 Getter 和 Setter 并像这样使用它:

public virtual int Weight { get; set;}

这是 N2Cms 2.0 中的新功能。

当你给新添加的属性一个新的值时,N2cms 会为页面的 N2Detail 表添加一条新记录。

于 2011-01-03T11:48:11.280 回答