在动作中间使用url参数&调节器

时间:2015-03-03 12:21:56

标签: c# model-view-controller parameters controller routes

我试图建立以下路线:

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

并达到我的行动指数(航班/索引),目的地=奥地利

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

1 个答案:

答案 0 :(得分:1)

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

如果首先定义了“默认”路由,则会导致问题,因为它通常与许多URL模式匹配。

所以我建议你将“默认”移动到最后一个,这应该解决问题。始终尝试在顶部定义最严格的模式,并向下移动灵活的模式(如“默认”)。