在果园内主持/整合/展示我现有的MVC3项目的正确方法是什么



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

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

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

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

任何帮助都将不胜感激。

更新:

感谢Bertrand Le Roy的回答,我现在可以在我的果园网站。我遇到了另一个巨大的问题,那就是我的应用程序无法再连接到我的外部数据库。

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

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

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

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

您需要将其放入一个模块中。

您必须将管线定义移动到Routes.cs文件中(例如,查看任何现有的此类文件)。

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

如果你正在使用依赖注入,你可能需要一些工作来将其转移到Orchard中基于Autofac的做事方式。

如果你想让你的作品无缝地出现在Orchard管理员中,你可能想用admin属性装饰你的管理员控制器。如果你想让你的前端使用当前的主题,你必须添加主题属性,也许还需要重构你的视图,使它们只为内容区域而不是整个页面发出HTML。

在模块文件夹中添加一个清单(module.txt),你就可以开始了。

最新更新