【发布时间】:2016-01-21 21:40:10
【问题描述】:
我希望我的客户能够在 Kentico 中设计自己的页面,并选择给定的小部件。所以他们创建一个页面,选择一个带有小部件区域的模板,然后放置他们想要的任何小部件。
我想做的是,我想开发一个小部件来检索其中一个页面的内容,然后处理/封装它。或者用更专业的术语来说,我希望在我的小部件类中将页面内容作为 HTML 字符串。
不幸的是,Kentico API 没有提供检索页面内容的方法,或者至少,我不知道该怎么做。有一个 Kentico Web 部件“页面占位符”,它完全符合我的需要,但是,我找不到在小部件中使用其功能的方法。我假设我可以在我的 widget.ascx 中使用 cms:CMSPagePlaceholder 标签,但由于某种原因它在那里不可见(不过,我可以从 Kentico CMS 命名空间中选择许多不同的其他控件)。
我还尝试通过 System.Net.WebClient 类接收内容 - 没有成功。我得到的只是
(401) 未经授权
不过,我可以在浏览器中打开给定的 URL。 (如果你能告诉我为什么会这样,给你加分。我在不同的上下文中偶然发现了这个 401 错误(访问 staging web 服务)并且不能完全弄清楚为什么。staging 同样的事情:我可以访问在浏览器中暂存 Web 服务的 URL,但不是从 Kentico 内部...非常奇怪)
一些背景信息:我正在从存储我的物理文件的客户端进行开发,并且我正在访问服务器上的共享数据库。物理文件在我的客户端和服务器上基本上是重复的。我只是推送我更改的 Web 部件文件。服务器 Kentico 实例的 URL 与我客户的 Kentico 实例的 URL 不同,我将我的客户的 URL 重定向到服务器(通过“站点”设置)。
长话短说,我如何为我的小部件获取文档呈现的 HTML?如果可以的话,我的生活会轻松很多。
【问题讨论】: