检查共享文件夹中是否存在查看或查看文件

时间:2019-07-01 14:11:38

标签: asp.net-mvc asp.net-core

任务:来自_ViewStart.cshtml的共享文件夹中是否存在视图或其文件。

原因:文件应与用户选择的任何主题相匹配。每个主题都有不同的Layout.cshtml例如Theme1.cshtml,Theme2.cshtml等。

  • 使用System.IO.File.Exists定位文件在运行时不起作用,因为只有 dlls wwwroot文件夹可用。缺少Views文件夹
  • 我尝试使用asp.net核心中的ViewEngine实现来找到视图,但没有成功。我看到的大多数示例都是通过Controller完成的

现在,我已经走过使用 Reflection 来确定当前程序集中所有与视图名称匹配并且在共享文件夹中的类的方法

@{
    var fileExist = GetExecutingAssembly()
                   .ExportedTypes
                   .Any(f => f.Name == "Views_Shared_{ViewName}")
}

这可行,但是我想以正确的方式来做。我相信这是经过数小时试图找到正式途径的黑客。

0 个答案:

没有答案