Я пытаюсь установить маршрут моего контроллера, а также иметь возможность перемещаться по индексу без ввода Index
, вот что я пробовал:
Моя конфигурация маршрута
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Попробуйте # 1
// My controller
[Route("panel/admin")]
public class MyController...
// My index action
public IActionResult Index()...
Проблема: это не работает, все действия становятся доступными на panel/admin
, поэтому я получаю сообщение об ошибке Multiple actions matched
.
Даже при установке маршрута моего действия индекса на Route("")
ничего не изменится.
Попробуйте # 2
// My controller
[Route("panel/admin/[action]")]
public class MyController...
// My index action
[Route("")]
public IActionResult Index()...
Здесь индексный маршрут не меняется, он остается panel/admin/Index
.
Что я хочу
Я хочу иметь доступ к своему действию index при переходе к panel/admin
, а также хочу, чтобы другие мои действия работали только с именами их методов, такими как panel/admin/UsersList
.
Полный контроллер
[Route("panel/admin/[action]")]
public class MyController
{
[Route("")]
public IActionResult Index()
{
return View();
}
public IActionResult UsersList()
{
var users = _db.Users.ToList();
return View(users);
}
// Other actions like UsersList
}
Спасибо.