У меня есть приложение asp.net core MVC 2.2
с маршрутизацией ниже, настроенной в startup.cs
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Затем в Author
Controller у меня есть метод действия, который перенаправляет пользователя на другой маршрут, передавая параметр
[Area("Tasks")]
public class AuthorController: Controller
{
[HttpPost]
public async Task<IActionResult> Preview(AuthorModel model)
{
return RedirectToActionPermanent("Index", "Preview", new { area = "Tasks", id=model.id});
}
}
Это создает маршрут /Tasks/Preview?id=1
Тогда в Preview
контроллере у меня есть
[Area("Tasks")]
public class PreviewController : Controller
{
[HttpGet]
public async Task<IActionResult> Index(int templateID)
{
// do something here to get model
return View(model);
}
}
Это работает нормально.
Однако я хочу, чтобы id
передавался как значение маршрута, а не как строка запроса. Так что маршрут должен выглядеть так: /Tasks/Preview/1
Что мне нужно изменить?