MVC3 MapRoute проблема - PullRequest
       6

MVC3 MapRoute проблема

2 голосов
/ 24 марта 2011

Я создал следующий маршрут:

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, что я также могу передать другие вещи в контроллер?Я даже не против жесткого кодирования.Я просто хочу передать слова Report and Test Board.

Надеюсь, вы поможете,

Мэнди

1 Ответ

3 голосов
/ 24 марта 2011

Использование 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"];
   }

}
...