2015-12-29 22 views
5

有没有一种方法可以根据代码背后的呈现值获取项目的呈现html?在最近的一个项目中,我们需要完成这项工作,目前我们正在用另一个看起来很浪费的请求来挖掘我们自己的网站。Sitecore获取Rendered Html

+0

您可以使用Item Web API,但不会考虑渲染参数,并且必须提供数据源的项目标识。我会认为,这不是你在之后。第15页:https://sdn.sitecore.net/upload/sdn5/modules/sitecore%2520item%2520web%2520api/sitecore_item_web_api_developer_guide_sc65-66-usletter.pdf – jammykam

回答

3

不幸的是,我不认为有一个干净的方式来实现这一点。一个用户控件很大程度上依赖于页面生命周期的运行,因此是一个HTTP请求。您还经常依赖于在请求过程中建立的Sitecore上下文的各个部分。

使用MVC,您有更多的选择,因为您可以直接调用Render方法。但是你仍然必须首先正确地建立模型。所以你可能仍然有困难。

正如你所说,它似乎是浪费,但屏幕抓取是实现它的通常方式。我知道一些现有的模块使用这种方法来索引页面内容。

+0

感谢您的反馈。由于上面提到的原因,看起来我会单独留下当前的方法。 – Teeknow

1

我平时打开一个网页请求,并获取该项目。如果我只需要一个特定的占位符,我通过像?mode=placeholder-name这样的东西来限制对它的访问。

这对搜寻网站并希望在搜索索引中缓存HTML时特别有用。

0

你的意思是在体验编辑器中?尝试为体验编辑器中开发的搜索索引页面时,我们遇到了同样的问题。我们所做的是向页面做HttpRequest,检索html,删除所有标签并将内容编入索引为_content。当我们然后想要做关键词搜索时,我们然后匹配_content。希望这可以帮助。 Charlie

+0

他已经向页面发出请求并正在寻找替代方法。 (“我们目前正在用另一个请求来刮我们自己的网站”) –

+1

错过了那个抱歉。我试图想到同样的事情,但找不到一个:( –

+1

没问题,这个问题的变化经常出现在Stack Overflow上,如果Sitecore能够提出一个解决方案,那就太好了。 –