gpt4 book ai didi

asp.net-mvc - 防止 ActionLink 使用路由值

转载 作者:行者123 更新时间:2023-12-01 08:15:32 24 4
gpt4 key购买 nike

这实际上是 How Can I Stop ASP.Net MVC Html.ActionLink From Using Existing Route Values? 的副本

根据@Eilon -

Because once you invalidate a parameter segment then all parameter segments after it will get invalidated.



就我而言,我有两个 Action 链接,它们链接到不同 Controller 上的操作。

这两个操作都有一个可选的页面参数。

路由配置如下所示:
    // blog routes

routes.MapRoute(
"",
"blog/page{page}",
new { controller = "Blog", action = "Index" },
new { page = @"\d+" }
);

routes.MapRoute(
"",
"blog/{id}",
new { controller = "Blog", action = "Post" }
);

routes.MapRoute(
"",
"blog",
new { controller = "Blog", action = "Index" }
);

// project routes

routes.MapRoute(
"",
"projects/page{page}",
new { controller = "Project", action = "Index" },
new { page = @"\d+" }
);

routes.MapRoute(
"",
"projects/{id}",
new { controller = "Project", action = "Project" }
);

routes.MapRoute(
"",
"projects",
new { controller = "Project", action = "Index" }
);

问题是,如果我导航到项目的第 2 页,然后单击博客链接,我将被定向到/blog/page2。

现在根据上述,如果参数段无效(在这种情况下, Controller 和 Action 都不同),那么页面参数应该无效。如果 Controller 和操作是使用标准 ActionLink 重载指定的,这是否有效,或者仅当它们通过 RouteValueDictionary 传入时才适用?

目前,我必须创建一个自定义 ActionLink 以从 RouteData 中删除“page”参数。

谢谢,

最佳答案

关于asp.net-mvc - 防止 ActionLink 使用路由值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4705448/

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