OrchardCMS:如何将TextField数据提取到文件中?

时间:2015-10-09 11:23:52

标签: c# export orchardcms

过去几天我一直在查看OrchardCMS,现在我需要从外面的网页上的文本框中提取一些数据到文件中。

我制作了一个简单的表单(Name,Surname,Email等)作为CustomForm用于测试目的。我希望在这些文本字段中写入的内容可以导出到外部文件中(甚至.txt也可以),最好是通过c#。我无法找到将c#和Orchard正确连接在一起的方法(我甚至无法理解在Orchard网站项目中我可以编写自己的代码的位置)

我的问题是,将外部表单的文本字段中的输入数据导出到(文本)文件中的好方法是什么?

1 个答案:

答案 0 :(得分:1)

我要做的是创建一个新模块,该模块利用新的自定义部件' ExportItemPart',并将其附加到您要导出的内容类型。类似于以下实现的内容(我不包括实际转换为文件)。

型号/ ExportItemPart.cs:

<Context>
  <Resource name="jdbc/myDB" auth="Container" type="javax.sql.Datasource"   
    username="myUser" password="password" driverClassName="com.ingres.jdbc.IngresDriver"
    url="databaseURL" maxActive="8" maxIdle="4" maxWait="100" global="jdbc/myDB"/>
</Context>

驱动器/ ExportItemPartDriver.cs:

public class ExportItemPart : ContentPart {}

处理程序/ ExportItemPartHandler.cs:

public class ExportItemPartDriver : ContentPartDriver<ExportItemPart> {
    // doesn't do anything visual, just leave empty 
    // to be able to catch the handler events
}

服务/ IExportService.cs:

public class ExportItemPartHandler {

    public ExportItemPartHandler(IExportService exportService) {

        // 'Catch' the OnCreated event of the ExportItemPart,
        // then export the item
        OnCreated<ExportItemPart>((ctx, part) => _exportService.ExportItem(part.ContentItem));
    }
}

服务/ ExportService.cs:

// Inherit from IDependency to make use of DI
public interface IExportService : IDependency {
    void ExportItem(ContentItem contentItem);
}