Asp.net mvc 4 取决于参数值的不同动作方法?

Asp.net mvc 4 取决于参数值的不同动作方法?,asp.net-mvc-4,asp.net-mvc-routing,Asp.net Mvc 4,Asp.net Mvc Routing,我有两个这样的URL /products/home?subcat=abc /products/home?subcat=xyz 我希望在产品控制器中有两种操作方法—homeabc和homexyz 根据“subcat”参数的值,如何构造路由以使其转到正确的操作方法 PS:我没有更改url格式的自由,它必须保持不变 谢谢。因为您无法更改URL格式,而且您只有一两个URL格式,所以最简单的方法是在Home/Index方法中进行某种类型的切换 public ActionResult Index(stri

我有两个这样的URL

/products/home?subcat=abc
/products/home?subcat=xyz
我希望在产品控制器中有两种操作方法—homeabc和homexyz

根据“subcat”参数的值,如何构造路由以使其转到正确的操作方法

PS:我没有更改url格式的自由,它必须保持不变


谢谢。

因为您无法更改URL格式,而且您只有一两个URL格式,所以最简单的方法是在Home/Index方法中进行某种类型的切换

public ActionResult Index(string subcat){
  switch(subcat.ToLower())[
      case "abc":
         return RedirectToAction("abc");
      case "xyz":
         return RedirectToAction("xyz");
      default:
         return RedirectToAction("UnknownCategory", "Errors");
  }
}
不幸的是,路由引擎不允许您基于查询字符串参数进行路由(
)。唯一的其他可能性是url重写