我的路线设置为
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
我想要做的是让网址像
/Company/{cfccc978-bfec-4425-a7ff-77ca7509a807}/Equipment/Index
/Company/{cfccc978-bfec-4425-a7ff-77ca7509a807}/Equipment/Edit/{f3628bf8-0e1d-4ae8-bf78-36feff9dfca5}
OR
/Company/Equipment/Index
/Company/Equipment/Edit/{f3628bf8-0e1d-4ae8-bf78-36feff9dfca5}
如果省略CompanyId,则将使用登录用户的值。
如果CompanyId存在,那么我需要确保用户可以访问它,要么他们必须在其用户上拥有该CompanyId,要么是管理员角色。
我不得不承认我无从何处开始。
我想我需要修改areaRoute映射以包含CompanyID,但是我的控制器方法应该如何使用它?我想避免必须编写每个操作方法来从用户那里拉出companyid以使其尽可能无缝。
这是一个新的应用程序,因此无需担心破坏现有功能。