【问题标题】:MVC controller with 2 parameters for filtering具有 2 个过滤参数的 MVC 控制器
【发布时间】:2019-03-20 15:26:15
【问题描述】:

当“mens”被传递到 URL(http://localhost:62498/Apparel/Mens) 时,它会呈现带有男装的模型。页面上有很多项目,我想对其进行过滤。我的问题是,如何在 URL 中添加另一个查询字符串来过滤我想要查看的特定项目?例如,如果我只想过滤销售商品,我希望 URL 处理模型,以便在男士销售商品上显示类似 http://localhost:3000/Apparel/Mens?type=Sale 的内容。

【问题讨论】:

    标签: c# asp.net-mvc controller asp.net-mvc-viewmodel


    【解决方案1】:

    “Mens”并不是一个真正的 id,我认为使用这样的属性路由会有所帮助:

    [HttpGet("[controller]/[action]/{category?}")]
    public ActionResult Apparel(string category = "", [FromQuery] string type = "")
    

    它与 MVC 默认路由非常相似,但它为类别提供了更好的名称。 type 上的 [FromQuery] 是可选的,默认情况下它从查询字符串中获取。

    更多属性路由:https://joonasw.net/view/attribute-routing-cheat-sheet-for-aspnet-core

    【讨论】:

      【解决方案2】:

      我更喜欢使用 Enum 作为类型。

      if (type== EnumType.Sale){
      
      }
      else if (type == EnumType.Latest){
      
      }
      

      【讨论】:

        猜你喜欢
        • 2015-03-27
        • 2019-06-08
        • 2018-04-11
        • 2014-11-09
        • 1970-01-01
        • 1970-01-01
        • 2016-06-21
        • 2011-02-07
        • 2016-12-30
        相关资源
        最近更新 更多