我正在Nop Commerce和我一起工作并想知道是否有人可以帮助我解决我的困惑.
我已经多次调试代码,试图找出在启动Web应用程序时如何加载设置.我只是不明白!
所有设置类都实现了该ISettings接口.让我们以客户设置为例..我发现它是由CustomerSettings类代表的.在数据库中有一个Setting table.客户设置的数据看起来像这样:
customersettings.usernamesenabled
customersettings.checkusernameavailabilityenabled
customersettings.allowuserstochangeusernames
... and so on...
Run Code Online (Sandbox Code Playgroud)
每个这些设置如何以及在何处映射customersettings到CustomerSettings类以及usernamesenabled映射到UsernamesEnabledCustomerSettings类中的属性的属性?为什么这样实现?
我知道它与类中的以下代码有关DependencyRegistrar:
builder.RegisterGeneric(typeof(ConfigurationProvider<>)).As(typeof(IConfigurationProvider<>));
builder.RegisterSource(new SettingsSource());
Run Code Online (Sandbox Code Playgroud)
如果有人能指出我正确的方向,那么我们将不胜感激.
我正在研究nopCommerce CMS.我创建了自己的插件,并希望通过管理面板安装它.我成功创建了插件,并在"本地插件"部分的管理面板中显示.当我尝试安装它时,我收到错误"方法或操作未实现.".任何人都可以告诉我我错过了什么.
请查找我编写安装的以下代码:
private readonly ISettingService _settingService;
public AdminInvoicePlugin(ISettingService settingService)
{
this._settingService = settingService;
}
public void GetConfigurationRoute(out string actionName, out string controllerName, out System.Web.Routing.RouteValueDictionary routeValues)
{
actionName = "Configure";
controllerName = "InvoiceAdmin";
routeValues = new RouteValueDictionary { { "Namespaces", "Shopfast.Plugin.Invoice.Admin.Controllers" }, { "area", null } };
}
void IPlugin.Install()
{
base.Install();
}
PluginDescriptor IPlugin.PluginDescriptor
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
void IPlugin.Uninstall()
{
base.Uninstall();
}
Run Code Online (Sandbox Code Playgroud) 我有一个新的nopcommerce 3.5网站,我想发布和调试它一切都很好,但很快我改为发布我得到这个错误
Error 1 Could not load file or assembly 'file:///C:\Users\User\Desktop\nop\packages\Autofac.3.5.2\lib\net40\Autofac.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515) C:\Users\User\Desktop\nop\Libraries\Nop.Services\SGEN Nop.Services
Run Code Online (Sandbox Code Playgroud)
我看着整个网络,尽我所能,它只是没有用
我做了什么.
我创建了一个phonegap应用程序,我正在调用WCF服务,该服务位于nopCommerce插件中.
我在发送api请求时遇到以下错误:
跨源请求已阻止:同源策略禁止在http://testwebsite.com/Plugins/NopRestApi/RemoteService/WebService.svc/GetData上读取远程资源.(原因:CORS预检频道没有成功).
跨源请求已阻止:同源策略禁止在http://testwebsite.com/Plugins/NopRestApi/RemoteService/WebService.svc/GetData上读取远程资源.(原因:CORS请求失败).
使用Ajax进行API调用
$.ajax({
crossDomain: true,
type: "POST",
contentType: "application/json",
async: false,
url: "http://testwebsite.com/Plugins/NopRestApi/RemoteService/WebService.svc/GetData",
data: "{storeId:" + storeId + ", languageId:" + languageId + ", customerId:" + customerId + "}",
//data: { storeId: storeId, languageId: languageId, customerId: customerId },
dataType: 'json',
//jsonp: false,
success: function (data) {
alert(data.d);
},
error: function (xhr, textStatus, error) {
alert("Error! " + error);
}
});
Run Code Online (Sandbox Code Playgroud)
我通过谷歌的一些研究在我的Web.config文件中添加了以下内容.
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol> …Run Code Online (Sandbox Code Playgroud) 我有Nopcommerce(NOP.Web)应用程序.当我构建此应用程序时,
Microsoft.Data.Edm.dll内部BIN文件夹的版本为5.7.0.62414.
但是当我重建我的插件时,它被复制到Nop.Web应用程序中,这个dll的版本更改为5.6.4.62175.我收到以下错误:
无法加载文件或程序集"Microsoft.Data.Edm"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
所以,我想我的插件和Nop.Web中有一些参考不同
我怎么知道哪一个,我该怎么办?
我发现在"Nop.Web.Framework.csprojResolveAssemblyReference.cache"文件中有这个引用:
C:\ Program Files(x86)\ Microsoft WCF Data Services\5.6.4\bin.NETFramework\Microsoft.Data.Edm.dll
我找不到这个参考来自哪里.它也引用了同一文件中的正确dll(5.7.XX):
d:\ MyProjects下\库\ Nop.Services\BIN \调试\ Microsoft.Data.Edm.dll
在app.config我有这个:
bindingRedirect oldVersion ="0.0.0.0-5.7.0.0"newVersion ="5.7.0.0"/>
但是在构建时总是需要5.6.4.X版本的dll.
我正在创建一个电子商务网站,并决定从NopCommerce V4.00开始.我使用WordPress和其他CMS系统以及C#,.NET,MVC等开发了其他网站,但我不熟悉NopCommerce,我正在寻找一些关于解决定制的最佳方法的建议.
该站点需要进行一些广泛的自定义,并且我对可维护性和更新的关注之一.我需要确保在升级到NopCommernce的新版本时,我不会在脚下拍摄并真正使事情变得困难.我很久以前就学会了总是尝试在这些系统之上添加并尽可能地保留系统代码.
我发现这个问题涉及覆盖视图,如果我正确假设视图存在于主题下(遵循相同的结构),那么将使用该视图,否则默认视图将使用根"视图"文件夹?
我似乎无法找到很多关于自定义站点的管理员端,并且不确定如何在不触及源的情况下自定义它.基本上我需要完成的是提供管理区域的精简版本,如果你愿意的话,提供"虚拟证明"版本.使用访问控制和可能的自定义客户角色来隐藏我需要提供自定义界面的任何区域,例如输入新的产品或属性并提供插件并将其添加到管理员菜单,会更明智吗?或者最好将整个事情作为一个完全独立的插件在公共方面完成并让管理员完全脱离它?我还没有足够的经验使用这个系统,我想避免任何许可问题和/或打开安全漏洞,因为它位于一个单独的区域.
我也很感激NopCommerce一般应该注意的任何提示或问题.我找到了不少网站,但这些网站似乎都参考了V2或V3,我不确定自那时以来是否有任何重大变化.
谢谢!
如果还有其他人正在寻找相同的信息,除了答案之外,我还能找到其他人可能会发现有用的链接来解决这个问题.
我正在研究nopcommerce2.8版本.我有一个telerik插件实现的问题来创建新的网格.我实施了一个概念,我希望为不同的客户提供不同价格的产品.因此,要为不同的客户分配新价格,请在管理面板中使用telerik在编辑产品变量页面中创建网格.我创建了一个新选项卡来显示这些详细信息.我能够在网格中显示客户名称和价格,但是当我在编辑一行后点击更新按钮时,我无法调用更新功能.同样的更新功能我也要求删除网格行,所以当我点击删除相同的更新功能获取触发器.我认为在View中错过了一些设置.请帮我解决这个更新问题.
我的nopcommerce的模型,视图和控制器如下所示.
谢谢.
//Model
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using FluentValidation.Attributes;
using Nop.Admin.Models.Customers;
using Nop.Admin.Validators.Catalog;
using Nop.Web.Framework;
using Nop.Web.Framework.Localization;
using Nop.Web.Framework.Mvc;
using Telerik.Web.Mvc;
namespace Nop.Admin.Models.Catalog
{
public partial class CustomerProductPriceModel : BaseNopModel
{
public int Customer_Id { get; set; }
[NopResourceDisplayName("Customer Name")]
public string Customer_name { get; set; }
[NopResourceDisplayName("Price")]
public decimal Price { get; set; }
[NopResourceDisplayName("Unit")]
public string Units { get; set; }
}
}
// view
@(Html.Telerik().Grid<CustomerProductPriceModel>()
.Name("Grid")
.DataKeys(x =>
{
x.Add(y => y.Customer_Id);
})
.DataBinding(dataBinding …Run Code Online (Sandbox Code Playgroud) 我正在使用NopCommerce.我想在类别主页上显示前3个畅销产品.
我有一个想法,在视图侧CategoryTemplate.ProductsInGridOrLines.cshtml和控制器端CatalogController.cs > HomepageBestSellers方法使用.
我已将类别ID作为参数传递给HomepageBestSellers方法.此类别ID作为参数传递给BestSellersReport方法.
我的问题是如何使用类别ID在类别主页上显示畅销产品?
如果有任何方法我可以调试我的nopCommerce插件,我正在寻找机会.我正在研究nopCommerce上的大型销售产品,因此我处于如此危急的境地,无法进行实时测试或调试.因为我无法找到异常的来源.有没有可用的工艺或套件?
提前致谢.
正如标题所示,我们正在构建一个新的应用程序,并希望将我们的管理区域设置为nopcommerce所做的新项目.
我们目前正在尝试一个示例项目,到目前为止我们所做的是: -
右键单击解决方案>添加新项目 - 选定的MVC应用程序,并将位置更改为App1应用程序下的新Admin文件夹.这一切现在看起来和nopCommerce一样.
右键单击Admin项目,在build下,将输出更改为..\bin \
据我所见,这似乎是这样吗?
我重建了解决方案,并检查应用程序中的bin目录,管理站点中的dll都在那里.
我发布主站点(App1)并检查.没有创建Admin文件夹,bin目录中没有admin dll ..
我们还缺少哪些其他步骤?
更新:我已经在nopcommerce解决方案中添加了一个新项目,使用完全相同的步骤2和3,这没有任何问题.因此,似乎在webproject或者nopcommerce中的解决方案中都有一些东西正在使这项工作.有任何想法吗?
nopcommerce ×10
asp.net-mvc ×6
c# ×3
asp.net ×2
.net ×1
autofac ×1
cross-domain ×1
telerik ×1
telerik-grid ×1
telerik-mvc ×1
wcf ×1