1

我有一个实现特定功能的现有 MVC3 项目,这个项目有它自己的视图和一个单独的数据库。

现在我需要在我的一个果园项目中使用相同的功能,所以我认为我可以在某个地方托管这个解决方案并在 iframe 或其他东西中查看它。

我想对了吗?为了在果园内实现这一要求,这是正确的步骤吗?

为了更清楚,我需要做的就是查看这个解决方案并从果园内的托管页面与它的控件和视图进行交互,随后的请求应该由我的解决方案处理,以便访问它自己的数据存储并获取返回请求的数据,以便显示给用户。

任何帮助,将不胜感激。

更新:

感谢 Bertrand Le Roy 的回答,我现在可以在我的果园网站中查看我的解决方案。我遇到了另一个巨大的问题,即我的应用程序无法再连接到我的外部数据库。

我有一个托管在其他地方的数据库,我正在使用 EntityFramework 来处理它。问题是,如果我将连接字符串放在我的模块 web.config 或主果园 web.config 中,我会遇到几种类型的错误,例如:

System.Reflection.TargetException:对象与目标类型不匹配。

或者

“System.Data.MetadataException:无法加载指定的元数据资源。”

我的问题是:假设我使用实体框架作为我的 ORM,我怎么能正确地将我的连接字符串传递给我的解决方案。非常感谢。

4

1 回答 1

1

您需要将其放入模块中。

您必须将路由定义移动到 Routes.cs 文件(查看任何现有的此类文件以获取示例)。

为了访问您的数据存储,您还需要选择退出围绕数据访问代码 ( using (var scope = new TransactionScope(TransactionScopeOption.Suppress))) 的环境 Orchard 事务。

如果您使用依赖注入,您可能需要做一些工作才能将其转移到 Orchard 中基于 Autofac 的处理方式。

如果您希望您的工作在 Orchard 管理员中无缝显示,您可能需要使用 Admin 属性来装饰您的管理员控制器。如果您希望前端使用当前主题,则必须添加 Themed 属性并可能重构您的视图,以便它们只为内容区域而不是整个页面发出 HTML。

将清单(module.txt)添加到您的模块文件夹中,您应该一切顺利。

于 2012-09-02T03:01:12.427 回答