#nopcommerce
Вопрос:
Я создал плагин, но для него нужен индивидуальный шаблон продукта, и я не могу заставить его работать. Может кто-нибудь, пожалуйста, помочь мне понять, что я сделал не так?
До сих пор у меня было:
- ушел в https://example.com/Admin/Template/List и добавил новый шаблон продукта 1a. установите путь просмотра «myCustomPlugin.Число просмотров.Продукт.ProductTemplateCustom.Просто»
- ушел в https://example.com/Admin/Product/Edit/46 и установите этот продукт с помощью нового шаблона продукта
- в своем коде плагина я создал шаблон в: myCustomPluginПредставленияПродуктProductTemplateCustom.Простой.cshtml
- загрузил страницу продукта
когда я загружаю страницу продукта, я получаю:
Исключение InvalidOperationException: Исключение InvalidOperationException: Представление ‘ProductTemplateCustom.Простого» не нашлось. Был произведен поиск в следующих местах: /Темы/Очистка по умолчанию/Просмотры/Продукт/ProductTemplateCustom.Простой.cshtml /Темы/Очистка по умолчанию/Просмотры/Общий доступ/ProductTemplateCustom.Простой.cshtml /Представления/Продукт/ProductTemplateCustom.Простой.cshtml /Представления/Общие/ProductTemplateCustom.Простой.cshtml /Страницы/Общие/ProductTemplateCustom.Простой.cshtml
- Я проверил
Nop.WebPluginsmyCustomPluginViewsProduct
иProductTemplateCustom.Simple.cshtml
был скопирован заново. - Я посмотрел
RouteProvider.cs
, ожидая, что в мой плагин нужно будет добавить некоторую конфигурацию маршрутизации, но я ничего не вижу - В их документации говорится, что мне нужно добавить новый шаблон продукта
ViewsProduct
, поэтому я сделал это, но он существует в моем пути к плагину, и я не могу понять, как заставить nopCommerce искать в этом месте
Ответ №1:
Похоже, то, что вы ищете, — это IViewLocationExpander. Проще говоря, этот интерфейс позволяет добавлять пользовательские местоположения просмотра, чтобы вы могли переопределить представление по умолчанию в своем плагине.
Вы можете найти реализацию в PresentationNop.Web.FrameworkThemesThemeableViewLocationExpander.cs
Самый простой способ — предоставить полный путь представления. Тем не менее, я предпочитаю использовать ViewLocationExpander, он выглядит более упорядоченным и аккуратным.