Umbraco 5中的JSON输出

时间:2012-05-20 08:10:38

标签: json umbraco umbraco5

我刚刚从Umbraco 4切换到Umbraco 5,似乎已经发生了很多变化。 所以我基本上想要的是可以在我的文档类型中添加替代模板。 后备模板应将内容返回为JSON。

为什么,你说?我想创建一种类似API的方式来从我的移动设备访问Umbraco数据。

WebAPI(http://cultiv.nl/blog/2012/4/22/exposing-umbraco-5-content-through-the-aspnet-web-api/) 我曾考虑过使用asp.net MVC 4中的WebAPI,但该项目实际上只是一个概念验证,我不想对每个端点进行编码。

所以我找到了一个为Umbraco 4做了一个包的som家伙实际上这样做并将@currentPage的内容呈现为Json。通过在URL的末尾添加“/ JSON”来命中模板。不幸的是,这使用了xslt,我已经从Ubraco 5.1中移除了(好东西)。

因此。我敢打赌创建一个部分宏,一个宏或部分宏来做这个并将其添加到模板中很简单。但是无法弄清楚从哪里开始。

有任何帮助吗?我正在寻找的是一个步骤指南,指出要采取的步骤,进行设置。在C#中渲染东西ad json我可以处理。 这是我缺乏的Umbraci整合。

嘿,你可以帮忙。

1 个答案:

答案 0 :(得分:0)

替代模板的工作原理与第4版完全相同:只需在网址末尾添加模板名称:yoururl / json

然后使用以下代码向名为“json”的模板添加新的剃刀视图:

@inherits RenderViewPage
@using System.Web.Mvc.Html;
@using Umbraco.Cms.Web;
@{
    Layout = "";
}
{
@foreach (var attribute in Model.Attributes)
{
    string.Format("\"{0}\": \"{1}\"", attribute.AttributeDefinition.Alias, attribute.DynamicValue);
}
}

此代码可以作为起点而不使用web api或自己的控制器。

不要忘记在所有文档类型上允许使用tempplate

HTH, 托马斯