#c# #asp.net-core #routes
#c# #asp.net-core #маршруты
Вопрос:
Мой Asp.Net Основной проект организован следующим образом:
MyApp
--Folder1
Folder1Controller.cs
Index.cshtml
--Folder2
Folder2Controller.cs
Index.cshtml
--Views
Shared
etc..
Я изменил запуск, чтобы он знал об этой структуре каталогов:
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationFormats.Clear();
options.ViewLocationFormats.Add($"/Folder1/{{0}}{RazorViewEngine.ViewExtension}");
options.ViewLocationFormats.Add($"/Folder2/{{0}}{RazorViewEngine.ViewExtension}");
options.ViewLocationFormats.Add($"/Views/Shared/{{0}}{RazorViewEngine.ViewExtension}");
});
Код для Folder1Controller
выглядит следующим образом:
public IActionResult Index()
{
return View();
}
И это работает нормально. Однако код для Folder2Controller
выглядит точно так же. Проблема в том, что при выполнении Index()
метода для Folder2
него Folder1
сначала просматривается. Я могу обойти это, сделав это:
public IActionResult Index(string id)
{
return View("/Folder2/Index.cshtml");
}
Мой вопрос в том, есть ли способ получить Asp.Net Как сначала заглянуть в текущий каталог? Даже если я использую относительный путь ( "./Index"
), он все равно переходит к Folder1
первому.
Комментарии:
1. Исходное местоположение контроллеров не сопоставляется с путями uri. Ближайшей функцией может быть Area’s.
Ответ №1:
Вы можете добавить папку с именем с именем контроллера в свою папку folder1, folder2, чтобы route мог распознать, какое представление нужно найти.
Во-первых, измените структуру папок следующим образом:
MyApp
--Folder1
Folder1Controller.cs
--Folder1
Index.cshtml
--Folder2
Folder2Controller.cs
--Folder2
Index.cshtml
--Views
Shared
etc..
Запуск:
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationFormats.Clear();
options.ViewLocationFormats.Add("/Folder1/{1}/{0}" RazorViewEngine.ViewExtension);
options.ViewLocationFormats.Add("/Folder2/{1}/{0}" RazorViewEngine.ViewExtension);
options.ViewLocationFormats.Add($"/Views/Shared/{{0}}{RazorViewEngine.ViewExtension}");
});