【问题标题】:How do I create a Razor view to capture a certain content type in Umbraco?如何创建 Razor 视图以捕获 Umbraco 中的特定内容类型?
【发布时间】:2014-02-23 08:31:05
【问题描述】:

我找到的所有文档(很多)都展示了如何创建内容类型、使用 Umbraco UI 捕获该内容类型的文档,以及如何创建模板来显示该文档。

我确定我需要一个 POST 操作,它将获得一个反映内容类型结构的视图模型;它是变量和其他内容,但在哪里可以找到这些以及如何处理这些数据对我来说仍然是个谜。

如何创建文档捕获视图以及如此常见的显示视图?

【问题讨论】:

  • 您是在问如何创建一个用于创建内容类型的新实例的表单?
  • 是的,我就是这么问的。我所能找到的只是关于如何构建用于显示的模板的东西,可能带有捕获字段,但不是如何实际创建实例。

标签: razor content-management-system umbraco


【解决方案1】:

创建一个 POST 到表面控制器的表单相当容易。 Our Umbraco 社区网站上有一个非常好的教程,可能对您有用。你可以找到教程here

在处理 POST 的控制器操作中,您需要添加对 Umbraco 管理 API 的调用,该 API 用于 CRUD 操作。

以下是如何在 Umbraco 6+ 中创建和填充内容文档属性的示例:

private void AddProduct(int productId, string name, int productGroupId, int price)
    {
        // Get the Umbraco Content Service
        var contentService = Services.ContentService;

        var product = contentService.CreateContent(
            name,           // the name of the product document
            productGroupId, // the parent id should be the id of the group node 
            "product",      // the alias of the product Document Type
            0);

        // Here's how to update some of the properties
        product.SetValue("productId", productId);
        product.SetValue("originalName", name);
        product.SetValue("priceDKK", price);

        // finally we need to save and publish, this saves the product and the property values
        contentService.SaveAndPublish(product);
}

媒体、文件、数据类型等也有类似的服务。有关详细信息,请查看 here(Umbraco v6+)和 here(早期版本)。

【讨论】:

  • 我看不到如何在该教程中实际保存文档的示例。它只是返回一条成功消息,但是表单如何到达数据库?这就是我的意思是我的文档不足。
  • 好的,现在我得到了你想要找到的东西。我会相应地更新我的答案。
  • name, parentId 等描述内容类型?是否实例数据,例如bodyText 自动解压?
  • 我已经更新了示例来展示如何填充文档属性。 Name 和 parentId 将描述 IContent(文档)实例,如果您想以编程方式添加新的内容类型,则必须调用不同的服务。
  • 谢谢。我在 Umbraco 网站上的示例都没有在控制器内部做任何有意义的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多