首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mvc中用个性化的代码呈现项

在mvc中用个性化的代码呈现项
EN

Stack Overflow用户
提问于 2015-05-07 20:11:30
回答 2查看 2.8K关注 0票数 2

我的术语可能会稍微偏离,因为我是新的Sitecore。我试图用硬编码数据源对视图呈现进行硬编码(对于其他需求,我必须这样做),这个视图呈现有动态设置的占位符,然后是个性化的。

如何触发项目上的ViewRendering?

我尝试过ItemRendering,但它似乎没有收集PageEditor中设置的内容。

*需要明确的是,下面这些有用的帖子具有呈现功能,但是我们似乎没有得到个性化的数据源。*

EN

回答 2

Stack Overflow用户

发布于 2015-05-08 02:51:14

我相信这就是你想要的

代码语言:javascript
复制
Item item = /* think you already have this */;

// Setup
var rendering = new Sitecore.Mvc.Presentation.Rendering {
  RenderingType = "Item",
  Renderer = new Sitecore.Mvc.Presentation.ItemRenderer.ItemRenderer {
    Item = item
  }
};
rendering["DataSource"] = item.ID.ToString();

// Execution
var writer = new System.IO.StringWriter();
var args = new Sitecore.Mvc.Pipelines.Response.RenderRendering(rendering, writer);
Sitecore.Mvc.Pipelines.PipelineService.Get().RunPipeline("mvc.renderRendering", args);

// Your result:
var html = writer.ToString();
票数 4
EN

Stack Overflow用户

发布于 2015-05-07 21:03:10

您可以使用Sitecore的Rendering()方法静态地绑定视图呈现。这也适用于使用相同方法的Controller呈现。

代码语言:javascript
复制
@Html.Sitecore().Rendering("<rendering item id>")

此方法接受匿名对象来传递参数,例如Datasource和缓存选项。

代码语言:javascript
复制
@Html.Sitecore().Rendering("<rendering item id>", new { DataSource = "<datasource item id>", Cacheable = true, Cache_VaryByData = true })

在您的视图呈现中,我假设您已经定义了一个占位符,并在Sitecore中定义了适当的占位符设置(如果不是,请随意评论并提供更多细节,我将更新我的答案)。

代码语言:javascript
复制
@Html.Sitecore().Placeholder("my-placeholder")

在这种情况下,“我的占位符”将像任何其他占位符一样被处理,因此您将能够从Page添加和个性化其中的组件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30110788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档