MVC3 MapRoute问题

发布于 2024-10-25 10:08:01 字数 415 浏览 6 评论 0原文

我创建了以下路由:

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 中是否有一种方法可以将其他内容传递给控制器​​?我什至不介意硬编码。我只是想传递“报告和测试委员会”这个词。

希望你能帮忙,

曼迪

I created the following route:

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)
{
}

This works good but I would now like my controller to know that it's been called from a route that matched Report 25 Test Board. Is there a way in MapRoute that I can also pass other things to the controller? I don't even mind hardcoding. I just just want to pass the words Report and Test Board.

Hope you can help,

Mandy

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尛丟丟 2024-11-01 10:08:01

使用 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"];
   }

}

Use 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";

On your controller you can do this:

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"];
   }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文