Plugins 覆盖插件NopCommerce 3.90中的部分视图

Plugins 覆盖插件NopCommerce 3.90中的部分视图,plugins,partial-views,nopcommerce,viewengine,nopcommerce-3.90,Plugins,Partial Views,Nopcommerce,Viewengine,Nopcommerce 3.90,我愿意覆盖插件中的“\u RentalInfo.cshtml”和“\u AddToCart.cshtml”页面。为此,我创建了自定义视图引擎,并将文件路径设置为“PartialViewLocationFormats,ViewLocationFormats”。 //CustomViewEngine类 public class CustomViewEngine : ThemeableRazorViewEngine { public CustomViewEngine()

我愿意覆盖插件中的“\u RentalInfo.cshtml”和“\u AddToCart.cshtml”页面。为此,我创建了自定义视图引擎,并将文件路径设置为“PartialViewLocationFormats,ViewLocationFormats”。 //CustomViewEngine类

public class CustomViewEngine : ThemeableRazorViewEngine
{
        public CustomViewEngine()
        {
            PartialViewLocationFormats = new[] { "~/Plugins/Misc.Rental/Views/Product/{0}.cshtml" };
            ViewLocationFormats = new[] { "~/Plugins/Misc.Rental/Views/Product/{0}.cshtml" };
         }
}
然后,我在插件中创建了RouteProvider.cs文件,并在视图引擎列表中添加了我的“CustomViewEngine”。我还将路由提供商的优先级设置为最高

//RouteProvider
public partial class RouteProvider : IRouteProvider
{
        #region Fields
        public int Priority
        {
            get
            {
                return int.MaxValue;
            }
        }
        #endregion

        #region Methods
        public void RegisterRoutes(RouteCollection routes)
        {
            ViewEngines.Engines.Add(new CustomViewEngine());

        }
        #endregion
}
最后,根据我的“CustomViewEngine”中提到的路径,我在插件的“视图”文件夹下创建了“\u RentalInfo.cshtml”和“\u AddToCart.cshtml”页面

但是,默认的部分视图也只显示在屏幕上。
任何人都可以查看我的代码并告诉我,我执行了哪些错误或遗漏的操作来覆盖部分视图。

我在插件中使用了以下代码

public PluginRazorViewEngine()
{
    PartialViewLocationFormats = new[] 
    {
        "~/Plugins/My.Plugin/Views/{1}/{0}.cshtml",
        "~/Plugins/My.Plugin/Views/Shared/{0}.cshtml",
    };

    ViewLocationFormats = new[] 
    {
        "~/Plugins/My.Plugin/Views/{1}/{0}.cshtml",
        "~/Plugins/My.Plugin/Views/Shared/{0}.cshtml",
    };

    AreaPartialViewLocationFormats = new[]
    {
        "~/Plugins/My.Plugin/Views/{1}/{0}.cshtml",
        "~/Plugins/My.Plugin/Views/Shared/{0}.cshtml",
    };

    AreaViewLocationFormats = new[]
    {
        "~/Plugins/My.Plugin/Views/{1}/{0}.cshtml",
        "~/Plugins/My.Plugin/Views/Shared/{0}.cshtml",
    };
}


// {0} in format gets filled with view name.
// {1} in format gets filled with controller name.
我不确定哪一个能解决你的问题


只需将My.Plugin替换为Misc.Rental,您会没事的。

谢谢您的回复。我解决了我的问题。问题在于我在RouteProvider中的自定义视图注册\n我使用“插入”方法而不是“添加”来注册,这对我很有用<代码>ViewEngines.Engines.Insert(0,新的CustomViewEngine())@Mukesh-如果您仍然面临问题,请在RouteProvider中将order设置为-1。