ASP.NET MVC 路线:产品类别和 slug

ASP.NET MVC Route: Product category and slug

我有一个用于查看产品的 ProductController。 产品有 slug 和类别。

我想要以下漂亮的网址(示例)

URL                                               CONTROLLER ACTION                   PARAMETER
www.example.com/products                   -> ProductController.Products      :  "" (empty string)
www.example.com/products/phones            -> ProductController.Products      :  "phones"
www.example.com/products/phones/iPhone     -> ProductController.Details       :  "phones" &"iPhone"

最好实现为路由属性[HttpGet("route-here")]。但是routes.MapRouteStartup.cs也是可以的

谢谢。

我试过的 前 2 条路线目前对我有用:

[HttpGet("products/{category?}")]
public ActionResult Products(string category)

但最后一条路线似乎不可行:

[HttpGet("products/{category}/{slug}")]
public ActionResult Details(string category, string slug)

我不敢相信我已经回答了这个问题而不让你尝试自己解决它,但这是代码

public class ProductController : Controller
{
    [Route("products/{productType}")]
    public ActionResult Products(string productType)
    {

    }

    [Route("products/{productType}/{product}")]
    public ActionResult Details(string productType, string product)
    {

    }
}