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

时间:2017-05-03 15:42:32

标签: asp.net-mvc routes friendly-url

我有一个用于查看产品的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)

1 个答案:

答案 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)
    {

    }
}