【问题标题】: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"];
       }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 2018-08-08
      • 2012-06-29
      相关资源
      最近更新 更多