2012-03-29 73 views

回答

2
+0

感谢,但需要更多的帮助 – user1299582 2012-04-02 18:09:17

+0

我还需要一些更多的帮助。 我补充说,在我的插件 项目,我无法看到这个插件在管理 - >配置 - >插件 我加入\演示\ Nop.Web \查看下面一行\目录\ ProductTemplate.SingleVariant.cshtml @ Html.Action(“Index”,“Tracking”,new {productId = Model.Id}) 我得到这个异常: 执行子请求失败。请检查InnerException获取更多信息。 的InnerException:{“控制器的路径‘/ P/5/1盎司,克鲁格金币’未找到,或者不执行一个IController。”} 我只是通过管理增加一些产品。 – user1299582 2012-04-02 18:33:39

+0

我没有在插件上工作,但记得添加了一些现有的插件。我希望你能验证你的编译输出路径是否设置为Nop.Web \ Plugins \,并且检查App_data文件夹中的InstalledPlugins.txt – Kiru 2012-04-03 08:27:21

19

我花了大量时间钻研这个问题”的深度。我可以如下概括的溶液:

  1. 创建实体类(例如Entity.cs)

    路径:NOP /核心/域/ Entity.cs

  2. 创建映射类(例如EntityMap.cs)

    路径:NOP /数据/映射/ EntityMap.cs

  3. 创建MVC模型(如EntityModel.cs)

    路径:NOP /管理/模型/ EntityModel.cs或NOP /网络/型号/ EntityModel.cs

  4. 创建模型验证(如EntityValidator.cs)

    路径:NOP /管理/校验/ EntityValidator.cs或NOP /网络/校验/ EntityValidator.cs

  5. 创建一个映射配置在AutoMapper StartupTask.cs对实体和模型

    路径:NOP /管理/基础设施或NOP /网络/基础设施

  6. 应用模型和实体之间的映射上MappingExtensions.cs

    路径:NOP/admin或NOP /网络

  7. 创建服务类和服务接口(例如EntityService.cs,IEntityService.cs)

    路径:NOP /服务/ EntityService.cs和依赖注入NOP /服务/ IEntityService.cs

  8. 注册服务

    路径:NOP /网络/框架/ DependencyRegistrar.cs

  9. 最后给定的模型

为NOP商务部创建控制器和视图使用MVC3的第一个版本,不支持数据库迁移,您必须手动更改数据库表。由于MVC代码优先必须删除并重新创建数据库以反映对数据库的更改。

如果你想获得更详细的任何步骤,让我知道 - 我可以详细描述每个步骤。 希望这有助于。

+0

请问你能详细解释一下还是任何例子?我在数据库中创建了一个表,但我不想创建一个新的插件,我只想添加Nop.Core Nop.Data Nop.Services中的类,但是我不知道这个过程。我只是想创建服务,并调用服务来加载我的下拉列表在Nop.Web或Nop.plugin。 – arlen 2012-09-27 18:44:00

+0

我应该为我的数据库中的新实体创建一个新的插件,并在其他项目(如其他插件或Nop.Web或Admin项目)中引用它,而不是在Nop.Core Nop.Data Nop.Services中添加我的类? – arlen 2012-09-27 18:50:50

1

@Behnam Esmaili

回答了完美的答案,但你要面对一个问题,因为你wan't能够因为nopCommerce使用依赖注入,从IEntityService创建一个实例创建控制器,这是被控制通过AutoFac集装箱。

所以你shold Check this post on nopCommerce forum,这将是有用的,以帮助您完成工作。

还有一个注意事项, 如果您想避免手动更改数据库,您应该对新版本的nopCommerce执行从1到8的步骤并安装它,数据库将随您所做的更改而创建到模型。

3

贝赫南Esmaili解决方案是正确的,但他们忘了添加一个步骤中介绍到注册新创建的控制器服务==> Nop.Web.Framework ==> DependencyRegistrar.cs这样

builder.RegisterType<EntityService>().As<IEntityService>().InstancePerHttpRequest();   
0

一步骤剩余Behnam Esmaili的答案

在NopCommerce数据库中创建表。

注:在数据库手动创建表是必要的。

最后创建控制器及其视图。

如果你想获得更多的详细信息,请点击here