更新现有站点上已发布页面的结构
Updating the structure of the published pages on existing site
我有一个现有的基于 Episerver 的网站,它在更改时不会更新已发布页面的结构。
我有大量来自 BasePage 的已发布页面。然后我必须向该页面添加一个新块:
public abstract class BasePage : PageData
{
[Display(Name = "SomeBlock")]
public virtual SomeBlock SomeBlock { get; set; }
}
public class SomeBlock : BlockData
{
[CultureSpecific]
[Display(Name = "Field1")]
public virtual string Field1 { get; set; }
}
我正在尝试更新计划作业中的页面。代码看起来像
BasePage writeablePage = (BasePage)basePage .CreateWritableClone();
if (basePage.SomeBlock == null)
basePage.SomeBlock = new SomeBlock ();
if (string.IsNullOrWhiteSpace(basePage.SomeBlock.Field1))
{
basePage.SomeBlock.Field1 = "Some Text";
}
DataFactory.Instance.Save(writeablePage, SaveAction.Publish, AccessLevel.NoAccess);
但是这种方法行不通。我试过 "SaveAction" 但没有效果
更新:我正在使用暂存环境中的数据库,它看起来像是版本控制问题(假设我在本地有 1.* 程序集,但暂存服务器上有 2.*)
问题是由于本地程序集的版本较低,然后在使用数据库的登台服务器上。
本地解决方案:
- 获取数据库版本(可以在管理员模式下查看)
- 将程序集信息版本设置得高于数据库中的版本
我有一个现有的基于 Episerver 的网站,它在更改时不会更新已发布页面的结构。
我有大量来自 BasePage 的已发布页面。然后我必须向该页面添加一个新块:
public abstract class BasePage : PageData
{
[Display(Name = "SomeBlock")]
public virtual SomeBlock SomeBlock { get; set; }
}
public class SomeBlock : BlockData
{
[CultureSpecific]
[Display(Name = "Field1")]
public virtual string Field1 { get; set; }
}
我正在尝试更新计划作业中的页面。代码看起来像
BasePage writeablePage = (BasePage)basePage .CreateWritableClone();
if (basePage.SomeBlock == null)
basePage.SomeBlock = new SomeBlock ();
if (string.IsNullOrWhiteSpace(basePage.SomeBlock.Field1))
{
basePage.SomeBlock.Field1 = "Some Text";
}
DataFactory.Instance.Save(writeablePage, SaveAction.Publish, AccessLevel.NoAccess);
但是这种方法行不通。我试过 "SaveAction" 但没有效果
更新:我正在使用暂存环境中的数据库,它看起来像是版本控制问题(假设我在本地有 1.* 程序集,但暂存服务器上有 2.*)
问题是由于本地程序集的版本较低,然后在使用数据库的登台服务器上。
本地解决方案:
- 获取数据库版本(可以在管理员模式下查看)
- 将程序集信息版本设置得高于数据库中的版本