Potrzebuję pobrać nazwę pojedynczego widoku wewnątrz folderu views\something
(pochodzi z żądania) w ramach MVC 4.0 i nie jestem pewien, jak najlepiej to zrobić.Pobierz plik wewnątrz folderu widoków w ASP.Net MVC 4.0
Mój kod działa, ale ma "hacky" i mam nadzieję, że ktoś może zostać uproszczony.
Mój kod wygląda następująco:
private FileInfo GetNameOfViewToServe()
{
var LeftPartOfUri = Request.Url.GetLeftPart(UriPartial.Authority);
var folder = Request.Url.AbsoluteUri.Replace(LeftPartOfFolderUri,string.Empty);
var directory = new DirectoryInfo(Server.MapPath(@"~\Views\" + folder));
return directory.GetFiles().First();
}
Czy jest bardziej eleganckim sposobem osiągnięcia tego celu?
jakiegoś powodu nie należy przechowywać go w bazie danych i mieć nazwę, aby ją indentify? EG: http: \\ mysite.com \ submitreview -> db lookup dla submitreview = ~ \ Views \ submitreview.aspx – Justin
Tak, niestety, to projekt w brązowym polu i muszę pracować z tym, co tam jest. Potrzebuję tylko bardziej eleganckiego sposobu pobierania listy plików (zwykle tylko jeden ze ścieżki żądania względnego: – davy
czy możesz pokazać działanie kontrolera, które wywołujesz? Ponieważ jest to MVC, czy twój kontroler nie może wykonać ogólnej akcji, która parametr string i możesz użyć odbicia, aby utworzyć widok lub wzór przypominający fabrykę, który zwróci widok oparty na kluczu łańcucha? – Justin