ASP.net核心路由/prod/1/review/1



我读了很多关于asp.net核心中路线的博客和问题,但没有发现任何人提到类似的东西。

在某些情况下,我希望我的路线看起来像:

/products/1/reviews/1

产品和评论后面跟着他们的id或更嵌套的路线,如:

/products/1/images/1/comments/1

有没有一种方法可以像默认的一样为它定义一个模板路由:

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

您可以使用基于属性的路由

[Route("[conroller]/[action]")]
public class ImagesController
{
    [HttpGet("/[controller]/{productId:int}/images/{imageId:int}/comments/{commentId:int}")]
    public IActionResult GetComments(int productId, int imageId, int commentId) 
    {
    }
}
routes.MapRoute(
    name: "Products",
    template: "products/{productId}/{action?}/{commentId?}",
    defaults: new { controller = "Products", action = "Index" });

https://docs.asp.net/en/latest/fundamentals/routing.html-ASP中的路由。NET核心

与ASP的路由格式没有区别。NET和ASP。NET核心。

你可以检查这个:ASP。NET路由

为了实现您的目标,您所要做的就是定义默认路线的路线ON TOP

相关内容

  • 没有找到相关文章

最新更新