【问题标题】:MVC3 MapRoute problemMVC3 MapRoute 问题
【发布时间】:2011-07-22 03:54:22
【问题描述】:
我创建了以下路线:
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 测试板匹配的路由调用的。 MapRoute 中是否有一种方法可以将其他内容传递给控制器?我什至不介意硬编码。我只是想通过报告和测试委员会的话。
希望你能帮忙,
曼迪
【问题讨论】:
标签:
asp.net-mvc
model-view-controller
asp.net-mvc-3
asp.net-mvc-routing
【解决方案1】:
使用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"];
}
}