我有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
控制器中,我具有通过传递参数将用户重定向到另一条路线的操作方法
[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
我需要更改什么?