我有一个现有的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),你就可以开始了。