如何创建Razor视图以捕获翁布拉科中的特定内容类型?

如何创建Razor视图以捕获翁布拉科中的特定内容类型?,razor,content-management-system,umbraco,Razor,Content Management System,Umbraco,我找到的所有文档(包括很多文档)都演示了如何创建内容类型,使用Umbraco用户界面捕获该内容类型的文档,以及如何创建模板来显示该文档 我确信我需要一个POST操作,它将得到一个反映内容类型结构的视图模型;它是变量和其他内容,但在哪里找到这些数据以及如何处理这些数据对我来说仍然是个谜 如何创建文档捕获视图以及如此常见的显示视图?创建一个发布到surface controller的表单相当容易。我们的Umbraco社区网站上有一个非常好的教程,可能对您有用。你可以找到教程 在处理POST的控制器操

我找到的所有文档(包括很多文档)都演示了如何创建内容类型,使用Umbraco用户界面捕获该内容类型的文档,以及如何创建模板来显示该文档

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


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

创建一个发布到surface controller的表单相当容易。我们的Umbraco社区网站上有一个非常好的教程,可能对您有用。你可以找到教程

在处理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);
}

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

您是否询问如何创建用于创建内容类型新实例的表单?是的,我正在询问。我所能找到的只是关于如何构建用于显示的模板的内容,可能包括捕获字段,但不是如何实际创建实例。在该教程中,我看不到任何关于如何实际保存文档的示例。它只是返回一条成功消息,但是表单是如何到达数据库的呢?这就是我的意思,我的文档是不充分的。好吧,现在我知道你想找到什么了。我将相应地更新我的答案。
name
parentId
等。描述内容类型?实例数据,例如
bodyText
是否自动提取?我已经更新了示例,以显示如何填充文档属性。Name和parentId将描述IContent(document)实例,如果您希望以编程方式添加新的内容类型,则必须调用另一个服务。谢谢。我在Umbraco网站上看到的示例中,没有一个在控制器内部有任何意义。