.NET自定义路由覆盖正常

时间:2014-02-17 18:04:56

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

这是我的自定义路线

// custom route
routes.MapRoute(
    "Custom",
    "Town/{townName}/{restaurantID}",
    new { controller = "Town", action = "View", restaurantID = UrlParameter.Optional }
);

问题是当我点击Create操作网址(应该是)Town/Create但网站将Create识别为townName时出现问题...同样的事情发生在Edit

感谢。

1 个答案:

答案 0 :(得分:1)

不幸的是,您正在处理2条非常通用的路线。无论哪个先订购都会有优先权,但这两个订单都不能满足您的需求。解决此问题的最简单方法是使用约束或为“创建”和“编辑”指定其他路径。

以下是创建其他路线以使“创建和编辑”显式化的样子。

注意:请注意,使用此网址结构,您永远不会拥有名为“编辑”或“创建”的城镇。幸运的是,这些城镇似乎并不存在于地球上(但是),但是Délété镇需要担心:http://nona.net/features/map/placedetail.2381031/D%C3%A9l%C3%A9t%C3%A9/

routes.MapRoute(
    "Town_Edit",
    "Town/Edit/{restaurantID}",
    new { controller = "Town", action = "Edit" }
);

routes.MapRoute(
    "Town_Create",
    "Town/Create/",
    new { controller = "Town", action = "Create" }
);

routes.MapRoute(
    "Town",
    "Town/{townName}/{restaurantID}",
    new { controller = "Town", action = "View", restaurantID = UrlParameter.Optional }
);

// Default route here
相关问题