Вернуть MVC-представление, совпадающее с именем файла параметров в родительской папке и подпапках - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу вернуть представление MVC на основе имени файла, переданного в функцию контроллера. Однако для следующего требуется относительный путь:

[Route("/ReturnViewByFileName/{ViewName}")]
public ActionResult ReturnViewByFileName(string FileName)
{
    return View("~/RelativePath");
}

Поскольку я хочу найти файл представления, который основан на имени файла параметров, и я хочу найти определенную папку и подпапки по этому имени файла.

var path = CurrentEnvironment.ContentRootPath + "\\Views\Parentfolder";

string[] FindFile = Directory.GetFiles(path, "*" + FileName + 
"*", SearchOption.AllDirectories);

Проблема в том, что это дает вам полный путь к файлу файла, а не относительный путь к файлу, который требуется View ().

Есть ли простой способ сделать одно из следующего:

  1. Переопределить функцию View (), чтобы принять полный путь к файлу
  2. Преобразование полного пути к файлу в относительный путь к файлу
  3. Или что-то еще, что я пропускаю

    Решение

    public ActionResult FindMVCView(string FileName)
    {
    var path = CurrentEnvironment.ContentRootPath + "\\ParentFolder";
    
    string[] FindFile = Directory.GetFiles(path, "*" + FileName +
    "*", SearchOption.AllDirectories);
    
    var newpath = FindFile[0].Replace(CurrentEnvironment.ContentRootPath, 
    "~/").Replace(@"\", "/");
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...