过去几天我一直在查看OrchardCMS,现在我需要从外面的网页上的文本框中提取一些数据到文件中。
我制作了一个简单的表单(Name,Surname,Email等)作为CustomForm用于测试目的。我希望在这些文本字段中写入的内容可以导出到外部文件中(甚至.txt也可以),最好是通过c#。我无法找到将c#和Orchard正确连接在一起的方法(我甚至无法理解在Orchard网站项目中我可以编写自己的代码的位置)
我的问题是,将外部表单的文本字段中的输入数据导出到(文本)文件中的好方法是什么?
答案 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);
}