需要帮助在ASP.NET MVC中创建路由

时间:2010-03-25 21:26:47

标签: asp.net-mvc routing asp.net-mvc-routing

我想创建一个像

这样的路线
//Widgets/PerformanceTable/['best' or 'worst' to sort by performance of an investment]

要求“最佳”或“最差”。

有人能告诉我一个很好的方法吗?

由于

1 个答案:

答案 0 :(得分:4)

我将假设您的控制器操作具有以下签名:

 public ActionResult PerformanceTable(string order)

在这种情况下,以下路线适合您:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{order}", // URL with parameters
            new { controller = "Widgets", action = "PerformanceTable", order = "best" }, // Parameter defaults
            new { order = "(best|worst)" });  // Constraints

如果没有给出订单,则将“最佳”的默认顺序传递给控制器​​。

MapRoute的最后一个参数是一个正则表达式,用于定义order参数的可能值(在本例中为'best'和'worst')。如果给出任何其他值,则路线将不匹配。