gpt4 book ai didi

c# - ASP.NET MVC 3 Url.Action匹配

转载 作者:行者123 更新时间:2023-11-30 18:05:16 25 4
gpt4 key购买 nike

我定义了以下两条路线:

routes.MapRoute(null, "" // ~/  
,new { controller="Products", action="List", page=1 });

routes.MapRoute(null, "{category}/Page{page}" // ~/CategoryName/Page21
, new { controller = "Products", action = "List", page = 1 }
, new { page = @"\d+" } //page must be numerical
);

我在 ProductsController 使用的 View 中使用此代码生成 URL:Url.Action("List", new {page=p, category=Model.CurrentCategory})

使用当前配置,我得到这个 URL:/Riding/Page2

但是,如果我从第一个路由中省略默认的 page 参数,我会得到这个 URL:/?category=Riding&page=2

在我看来 Url.Action() 可以匹配两条路线,如果我在第一条路线,但如果省略该参数,则选择使用第一条路线。

鉴于我正在为 page 参数提供一个值,为什么从路由的默认值中删除它会影响我返回的 URL?

谢谢!

最佳答案

尝试安装 NuGet 包 Glimpse .它有很好的路由调试,应该能帮到你。

这是 Scott Hanselan 关于如何使用它的博文:NuGet Package of the Week #5

关于c# - ASP.NET MVC 3 Url.Action匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com