【发布时间】:2011-08-05 18:08:29
【问题描述】:
我们的一位用户决定他们需要能够在我们的主网站上编辑部分内容,而我的任务是实施它。底层模型是页面中的一个或多个 div 将从 CMS 填充其内容。
为了交付内容,我使用观察者模型来交付内容,这很好用。该页面包含(至少)3个服务器控件;数据提供者(CMS)、控制器(主体)和容器(观察者)。该容器将包含两个内容面板(编辑或视图)之一,这些面板将使用从控制器推送的数据适当地呈现在屏幕上。
但是,现在我需要能够在编辑器和查看器面板之间切换(以便可以预览更改)并能够将编辑的内容发布到数据提供程序 (CMS),但我一直丢失编辑的内容回发。我试图覆盖“SaveViewState”方法,但因为内容面板是在预渲染期间创建的(因为它取决于 ViewState 属性),所以控件集合始终显示之前创建的对象(即当编辑面板是显示时,控件集合中的对象是预览面板)。
我不想因为性能问题而同时渲染两个控件;我正在考虑创建一个三级组件(可能是一个隐藏字段)来存储编辑后的文本,但希望这里的某个人可能对如何构建它有更好的了解?
【问题讨论】:
标签: c# asp.net viewstate composite-controls