【发布时间】:2015-03-10 10:42:15
【问题描述】:
我是新手,我使用 Umbraco 和 asp.net 我的问题是我需要导出大量内容中的文件(Umbraco)。我尝试使用 EyeCatch XML Export,但不起作用。我尝试创建一个新包,以便可以导入其他 Umbraco,但这不是我需要的。我需要 XML 文件和 XSL 文件中的内容文件。 例如,我需要主页下的所有文件,带有自己的图像等。 有谁知道有没有免费的包,或者有人知道怎么做吗?
【问题讨论】:
我是新手,我使用 Umbraco 和 asp.net 我的问题是我需要导出大量内容中的文件(Umbraco)。我尝试使用 EyeCatch XML Export,但不起作用。我尝试创建一个新包,以便可以导入其他 Umbraco,但这不是我需要的。我需要 XML 文件和 XSL 文件中的内容文件。 例如,我需要主页下的所有文件,带有自己的图像等。 有谁知道有没有免费的包,或者有人知道怎么做吗?
【问题讨论】:
在 /app_data/umbraco.config 中已经有一个包含您网站所有内容的 XML 文件(它的 .config 扩展名让您失去了嗅觉)。
在渲染所有内容时,Umbraco 在内部使用这个 XML 文件。
【讨论】:
我会看看 UmbracoAPIController 的。它们将允许您轻松地将任何数据类型的属性值公开为 XML 或 JSON。它本质上是 Microsoft 的 Web API 的扩展,并且非常容易创建。您所做的就是创建一个 POCO 类来存储您的内容,其名称以“Controller”结尾。然后扩展 UmbracoApiController。例如:
using System.Web.Mvc;
using Umbraco.Core.Models;
using Umbraco.Web;
using Umbraco.Web.WebApi;
namespace MyNamespace
{
public class MyDocTypePoco
{
public string Name { get; set; }
public string ImageUrl { get; set; }
}
public class MyDocTypeController : UmbracoApiController
{
[UmbracoAuthorize, AcceptVerbs("GET, POST"), System.Web.Http.HttpGet]
public MyDocTypePoco GetPage(int id)
{
IPublishedContent node = Umbraco.TypedContent(id); // get our CMS node
var myPoco = new MyDocTypePoco // instantiate POCO and populate
{
Name = node.GetPropertyValue<string>(node.Name), // property of IPublishedContent
ImageUrl = node.GetPropertyValue<string>("imageUrl") // my document type's custom property's alias
};
}
}
}
当然,这会假设您的图像文件存储在别名为“imageUrl”的属性中。
编译代码后,您应该可以使用此 URL 调用您的服务。
http://localhost/umbraco/api/MyDocType/GetPage?id=1234
1234 是内容节点的 ID,并将 localhost 替换为您正在运行站点的域(并添加端口等)。请注意,您可以删除“UmbracoAuthorize”语句以允许您查看您的服务,而无需经过身份验证并登录到 Umbraco 的后端。除非您确定控制器公开的数据是无害的,否则绝不应在实时站点上执行此操作。
查看here 了解更多信息。欢迎乘坐 Umbraco 火车!这很有趣,而且我们正在不断壮大我们可以实现的目标。
【讨论】: