我有一个用于查看产品的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.MapRoute
中的Startup.cs
也可以。
感谢。
我尝试了什么 前两条路线目前正在为我工作:
[HttpGet("products/{category?}")]
public ActionResult Products(string category)
但最后一条路线不似乎有效:
[HttpGet("products/{category}/{slug}")]
public ActionResult Details(string category, string slug)
答案 0 :(得分:1)
我无法相信我已经回答了这个问题而没有让你自己尝试解决这个问题,但这里是代码
public class ProductController : Controller
{
[Route("products/{productType}")]
public ActionResult Products(string productType)
{
}
[Route("products/{productType}/{product}")]
public ActionResult Details(string productType, string product)
{
}
}