0

有谁知道如何为具有多个参数名称的同一区域中的多个控制器提供路由映射?

我请求为每个具有唯一参数名称的控制器提供不带参数名称(仅值)的 URL(以避免歧义)

这可能吗?

我想在 URL 中得到这个输出:

/myAreaName1/mycontrollerName1/Edit/12/23
/myAreaName1/mycontrollerName2/Edit/someValue1/23

使用这样的东西:

context.MapRoute(
                "mapRouteName1",
                "myAreaName1/{controller}/{action}/{customID}/{sustomID2}",
                new { controller = "mycontrollerName1", action = "Index", customID= UrlParameter.Optional, sustomID2= UrlParameter.Optional },
                new string[] { "Project.Areas.SomeArea.Controllers" }
            );

context.MapRoute(
                "mapRouteName1",
                "myAreaName1/{controller}/{action}/{customValue}/{sustomID3}",
                new { controller = "mycontrollerName2", action = "Index", customValue= UrlParameter.Optional, sustomID3= UrlParameter.Optional },
                new string[] { "Project.Areas.SomeArea.Controllers" }
            );
4

1 回答 1

1

您需要使用 RegEx 路由(我使用了一篇关于此的文章来指导我如何创建它一次......效果很好)。我过去曾将它们用于此类事情。我建议你不要这样做,因为它可能会导致错误。如果您添加正则表达式规则以根据所有数字进行捕获,并且如果参数具有非数字值,则它使用另一条路线...然后用户在该位置输入所有数字?我认为这将导致难以找到错误。

想要更好的东西吗?企业是否坚持让您使用这些 URL?您还可以考虑使用 URL 重写规则将其写入 MVC 框架之外的另一个路由,然后将路由更改为更独特。

于 2012-04-04T21:22:02.173 回答