我创建了以下路线:
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)
{
}
这很好但我现在希望我的控制器知道它是从匹配Report 25 Test Board的路线调用的。在MapRoute中是否还有一种方法可以将其他东西传递给控制器?我甚至不介意硬编码。我只想传递报告和测试委员会的话。
希望你能提供帮助,
曼迪
答案 0 :(得分: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"];
}
}