我想在不创建任何新类别并映射到它的情况下显示所有产品。
谁能帮我?
提前致谢。
这是真的; 为了使产品在 nopCommerce 中显示,必须将其分配给一个类别。您最好的选择是创建一个顶级的总括类别,例如“所有产品”,并将您的所有产品添加到该总括类别中。
据我所知,它们必须是与产品相关的类别。
您可以通过修改代码来做到这一点。我以前做过。其实很简单。
修改 Catalog 控制器的 Category 操作以接收可为空的 CategoryId:
public ActionResult Category(int? categoryId, CatalogPagingFilteringModel command){
由于这个可为空的参数,修改操作以不中断。
要修改的最重要部分是在哪里构建要过滤的类别 ID 列表:
var categoryIds = new List<int>();
if (category != null)
{
categoryIds.Add(category.Id);
}
if (_catalogSettings.ShowProductsFromSubcategories)
{
//include subcategories
categoryIds.AddRange(GetChildCategoryIds(category.Id));
}
_productService.SearchProducts 方法将收到一个空的类别 ID 列表,并且不会过滤任何产品。
你可以创建一个插件,映射一个路由到它(例如映射到'allproducts'路由),并在插件中创建你自己的控制器、动作和视图。然后在主菜单中插入一个指向路线的链接
@Html.RouteLink(routeName, null) //or similar overloads
插件创建部分太大,无法在此描述。http://www.nopcommerce.com/documentation.aspx是一个好的开始。
PS:/ 关于路由,每个插件都可以通过实现“IRouteProvider”接口来实现一个路由注册器。
:)