2012-03-29 108 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