为参数

时间:2016-05-05 16:10:23

标签: asp.net-mvc asp.net-mvc-routing

我被要求设置路由,以便下一条路由工作

https://<server>/<weapp>/<paramater>

我已经使用默认控制器和操作,此路由按预期工作

https://<server>/<weapp>/?param1=<paramater>

但是我的客户希望我摆脱?param1=并且只通过在网址末尾设置参数来按预期工作

我看过这项工作,但我无法找到如何配置以及搜索它的原因。我的google fu在这个上很弱

1 个答案:

答案 0 :(得分:1)

所以,在更多隐藏在更加模糊的google fu调查结果之后,我终于找到了答案

我确实已经设置了一条路线,在我看来,应该足以满足我的客户需求

routes.MapRoute(
                name: "Shortener",
                url: "{id}",
                defaults: new { controller = "<controller>", action = "<action>", id = UrlParameter.Optional }//new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

但是我总是按照我的路线图设置新的路线图。我发现这一点in this article给了我一些新的启示,我之前读过的关于此事的文章从未提及,甚至没有提到MSDN

  

设计路线时要记住的一件事是订单   其中路由添加到表中的事项很重要。路由引擎   将采用与提供的URL匹配的第一个路由并尝试   使用该路线中的路线值。因此,不太常见或更多   专业路线应首先添加到表中,同时更多   一般路线应该在以后添加。

因此,在我的路由配置设置在所有其他路由配置的顶部之后,url

https://<server>/<weapp>/<paramater>

像魅力一样工作!

希望这有助于其他任何人!