ViewEngine的位置搜索顺序没问题但是从错误的文件夹呈现视图

时间:2016-08-18 23:22:04

标签: asp.net-mvc-5 nopcommerce viewengine nopcommerce-themes

我有一个nopCommerce插件,它有一个自定义视图引擎如下:

CustomViewEngine : ThemeableRazorViewEngine

该插件有一个名为CategoryNavigation.cshtml的视图文件,该文件也存在于Views\Catalog\CategoryNavigation.cshtml

现在,如果删除文件,视图引擎报告的错误如下: enter image description here

如您所见,第一个搜索位置是插件文件夹。

因此,如果文件存在于插件文件夹中但不存在于Views\Catalog\文件夹中,则会从插件文件夹中显示该文件而不会出现任何错误。 但是,如果该文件同时存在于插件文件夹和Views\Catalog\中,则会呈现Views\Catalog\中的视图。但Views\Catalog\在搜索位置下降(见上图)。 知道可能导致这个问题的原因吗?

nopCommerce 3.70

1 个答案:

答案 0 :(得分:1)

  

我需要插件中的视图才能呈现默认视图

如果要在插件中显示视图页面,则应使用已经完成的插件视图引擎。但请确保您还要定义ViewLocationFormats,如下所示。

 public class CustomViewEngine :ThemeableRazorViewEngine 
    {         
        public CustomViewEngine ()
        {    
            ViewLocationFormats =
                new[]
                {                               
                     "~/Plugins/Feed.Instagram/Views/Catalog/{0}.cshtml"
                };
        }  
    }

此处在您的视图文件夹中创建一个文件夹(目录),并将categoryNavigation.csh‌​tml粘贴到其中。

它将显示插件中的视图页面而不是默认值。

希望这会对你有所帮助!

有关详细信息,请参阅:Ways to Display Views in Your nopCommerce Plugins