在ASP.NET Core MVC中,可以使用路由属性来定义分类/子类别(/子子类别*)路由。下面是一个示例解决方法:
[Route("categories")]
public class CategoryController : Controller
{
// ...
}
[Route("{categoryId}/subcategories")]
public IActionResult SubCategory(int categoryId)
{
// ...
}
[Route("{categoryId}/subcategories/{subcategoryId}/subsubcategories")]
public IActionResult SubSubCategory(int categoryId, int subcategoryId)
{
// ...
}
完整示例代码如下:
[Route("categories")]
public class CategoryController : Controller
{
[Route("")]
public IActionResult Index()
{
// 返回所有分类的视图
return View();
}
[Route("{categoryId}/subcategories")]
public IActionResult SubCategory(int categoryId)
{
// 返回指定分类下的所有子类别的视图
return View();
}
[Route("{categoryId}/subcategories/{subcategoryId}/subsubcategories")]
public IActionResult SubSubCategory(int categoryId, int subcategoryId)
{
// 返回指定子类别下的所有子子类别的视图
return View();
}
}
使用上述代码示例,可以通过以下路由访问不同的页面:
注意:在ASP.NET Core MVC中,路由属性的顺序很重要。确保路由属性的顺序正确,以便正确匹配请求的URL路径。