【问题标题】:ASP.NET MVC Route: Product category and slugASP.NET MVC 路线:产品类别和 slug
【发布时间】:2017-10-01 13:16:47
【问题描述】:

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

【问题讨论】:

  • 您遇到了什么问题?你试过什么?

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


【解决方案1】:

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

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

    }

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

    }
}

【讨论】:

  • 正如您在我更新的问题中看到的那样,我已经尝试过了。但我是个白痴。我只是在监督一些缺失的 .ToLower()。我的错。你的答案是正确的。
猜你喜欢
  • 2011-07-02
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-13
  • 2013-01-06
  • 2020-06-22
相关资源
最近更新 更多