gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 3 路由破坏了 ActionLink 功能

转载 作者:行者123 更新时间:2023-12-02 01:16:58 25 4
gpt4 key购买 nike

我有一个 MVC 2,已迁移到 MVC 3。迁移后,我的 ActionLink 不再工作。我发现这是因为我的默认路由。

routes.MapRoute( "Default", "{controller}/{action}/{id}/{title}", new { controller = "Home", action = "Index", id = UrlParameter.Optional, title = UrlParameter.Optional } );

如果我将默认路由更改为 MVC 默认路由,它会再次正常工作。

routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional } );

为什么标题可选参数会破坏我的 ActionLink?

最佳答案

问题不在于标题参数是可选的。在您的情况下, id 参数是可选的。只有路由定义的最后一个参数可以是可选的,并且此规则已在 ASP.NET MVC 3 中强制执行。这是一个 similar question关于这个话题。

因此,如果您想拥有这样的路由,请确保在生成这些链接时始终为 id 参数指定一个值:

@Html.ActionLink("text", "Index", new { id = "123" })

关于asp.net-mvc - ASP.NET MVC 3 路由破坏了 ActionLink 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5013182/

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