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);

Это может быть полезно

Другие вопросы по тегам