https: // localhost: 8080/{route1}/{route2}/{route3}
это мой контроллер:
.
Код: Выделить всё
public class XController : Controller
{
[HttpGet("{route1?}/{route2?}/{route3?}")]
public async Task Index([FromRoute] string? route1, [FromRoute] string? route2, [FromRoute] string? route3)
{
if (User == null || User.Identity == null || !User.Identity.IsAuthenticated)
return Unauthorized();
//do some stuff here
return View("/views/X/Index.cshtml", model);
}
}
< /code>
И это отлично работает. Тем не менее, я все еще хочу использовать некоторые «предопределенные» маршруты для специальных функций, таких как вход в систему, управление учетными записями, платежи и т. Д. Поэтому я думаю, что иметь некоторые предопределенные маршруты для этих специальных контроллеров, а затем все остальное идет в общий контроллер, определенный выше. К сожалению, все, даже мои «предопределенные» маршруты идут в общий контроллер. У меня определено маршрутизация так: < /p>
app.MapControllerRoute(
name: "default",
defaults: new { controller = "Home", action = "Index" },
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapControllerRoute(
name: "account",
defaults: new { controller = "Account", action = "Index" },
pattern: "{controller=Account}/{action=Index}/{id?}");
app.MapControllerRoute(
name: "x",
defaults: new { controller = "X", action = "Index" },
pattern: "{route1?}/{route2?}/{route3?}");
Подробнее здесь: https://stackoverflow.com/questions/797 ... efined-rou
Мобильная версия