Я хочу вернуть представление 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 ().
Есть ли простой способ сделать одно из следующего:
- Переопределить функцию View (), чтобы принять полный путь к файлу
- Преобразование полного пути к файлу в относительный путь к файлу
Или что-то еще, что я пропускаю
Решение
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(@"\", "/");
}