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.MapRoute
在Startup.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)
{
}
}
我有一个用于查看产品的 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
也是可以的
谢谢。
我试过的 前 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)
{
}
}