asp.net如何设置路径以获取部分url作为参数

时间:2017-04-16 23:22:31

标签: asp.net-mvc

我有以下路线:

Routes.MapRoute(
    name: "go",
    template: "{controller=Go}/{action=Go}/{*Data}");

我想在这样的网址上调用我的控制器:

  

/去/ somedatahere

我可以恢复 somedatahere 字符串

但这不会调用控制器。

如果我使用:

  

/去

     

/去?什么

然后控制器被调用

1 个答案:

答案 0 :(得分:0)

根据您的路线

 template: "{controller=Go}/{action=Go}/{*Data}") 

表示URL将为go/go/mydatahere,当您使用/go时,它会被调用,因为它会匹配您的路由控制器的名称{controller=Go}/{action=Go},这意味着当您键入/go,它会知道您正在谈论Go ControllerGo action,因此会将您重定向到go/go所以它应该是

 routes.MapRoute(
          name: "go",
          template: "go/{*Data}",
          defaults: new { controller = "Go", action = "Go" });

现在/go/somedatahere将匹配路线的模板,/go/之后的所有内容都将被视为Data