Nop Commerce Custom View Engine для IComponents View Не работает в nopcommerce 4.0
У меня есть следующий код в пользовательском плагине в NopCommerce v4.0
Я пытаюсь переопределить страницу общей суммы заказа IComponent в nopcommerce и пытаюсь переопределить мой плагин с заданным кодом
ViewLocationExpander.cs
public class BundledDiscountsViewEngine : IViewLocationExpander
{
public void PopulateValues(ViewLocationExpanderContext context)
{
//nothing to do here.
}
public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations)
{
if (context.AreaName == null && context.ViewName == "Components/OrderTotals/Default")
{
viewLocations = new string[] { $"/Plugins/Demo/Views/Components/OrderTotals/{{0}}.cshtml"
}.Concat(viewLocations);
}
return viewLocations;
}
}
Nopstartup.cs
public class NopStartup : INopStartup
{
public void ConfigureServices(IServiceCollection services, IConfigurationRoot configuration)
{
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationExpanders.Add(new ViewLocationExpander());
});
}
public void Configure(IApplicationBuilder application)
{
}
public int Order
{
get { return 1001; } //add after nopcommerce is done
}
}
Он вызывается в файле ExpandViewLocations.cs, и путь в порядке, но он перенаправляет страницу nopcommerce по умолчанию в Views/shared/component/OrderTotals/Default.cshtml.
Я пробовал много разных вещей, но не нашел решения, если у кого-то есть идея, пожалуйста, ответьте
Спасибо Ильяс Патель
1 ответ
Решение
Я сталкиваюсь с той же проблемой, в nop 4.0 есть путь просмотра по умолчанию, который вы должны просто объявить следующим образом
viewLocations = new string[] { $"/Plugins/Demo/Views/{{0}}.cshtml"
}.Concat(viewLocations);
Это может быть полезно