具有2个用于过滤的参数的MVC控制器

时间:2019-03-20 15:26:16

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

将“男装”传递到URL(http://localhost:62498/Apparel/Mens)时,它将使用男装服装呈现模型。页面上有很多项目,我想过滤。我的问题是,如何将另一个查询字符串添加到URL中以过滤要查看的特定项目?例如,如果我只想过滤销售商品,我希望URL处理模型以使http://localhost:3000/Apparel/Mens?type=Sale之类的东西显示在男性销售商品上。

2 个答案:

答案 0 :(得分:0)

“男性”实际上并不是一个ID,我认为使用这样的属性路由会有所帮助:

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

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

有关属性路线的更多信息:https://joonasw.net/view/attribute-routing-cheat-sheet-for-aspnet-core

答案 1 :(得分:0)

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

if (type== EnumType.Sale){

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

}