2

我创建了以下路线:MVC3图路线问题

routes.MapRoute(
    "TestRoute4", // Route name 
    "Report {ref_id} Test Board", // URL with parameters 
    new { controller = "stats", action = "index" } // Parameter defaults 
); 

public ActionResult index(string ref_id) 
{ 
} 

这工作不错,但我现在想我控制器知道,它已经从匹配的报告25测试板的路由调用。 MapRoute有没有办法让我可以将其他东西传递给控制器​​?我甚至不介意硬编码。我只是想通过报告和测试委员会的话。

希望能对你有所帮助,

曼迪

回答

3

使用DataTokens

Route route = routes.MapRoute(
    "TestRoute4", // Route name 
    "Report {ref_id} Test Board", // URL with parameters 
    new { controller = "stats", action = "index" } // Parameter defaults 
); 

route.DataTokens["YourKey"] = "your value"; 

在你的控制器,你可以这样做:

public ActionResult Index() { 

    // check if matched route is TestRoute4 (optional) 
    if (this.RouteData.Route == RouteTable.Routes["TestRoute4"]) { 
     // do something 

     var val = this.RouteData.DataTokens["YourKey"]; 
    } 

}