在动作和控制器中间使用 url 参数

Using url parameter in the middle of action & controller

我正在尝试构建以下路线:

routes.MapRoute(
              name: "StaticPage",
              url: "guide/{destination}/{controller}/{action}",
              defaults: new { controller = "Home", action = "Index", destination = UrlParameter.Optional }
          );

我的控制器如下:

public class FlightsController : Controller
{
  public ActionResult Index(string destination= null, string origin=null)
      {

      // some code here

      }
}

我要浏览到这个地址--> www.somewebsite.com/guide/austria/flights

并达到我的行动指数(flight/index),目的地=奥地利

可能吗?如何?我试过的方法不起作用:/

我怀疑问题出在您定义路由的顺序上。重要的是要注意它们是从上到下评估的(首先定义,到最后定义)。一旦找到有效的匹配项,它将停止检查其他匹配项。

如果您首先定义了 "default" 路由,它会导致问题,因为它通常匹配很多 URL 模式。

所以我建议您将 "default" 移到最后一个,这样应该可以解决问题。始终尝试在顶部定义最严格的模式,然后向下定义移动灵活的模式(如 "default")。