gpt4 book ai didi

asp.net-mvc - ASP.NET MVC : How to "understand" legacy URLs but not write them?

转载 作者:行者123 更新时间:2023-12-01 12:00:43 26 4
gpt4 key购买 nike

请原谅这个令人困惑的标题;)

我们构建了一个 ASP.NET MVC 应用程序来替换我们“旧的”ASP.NET webforms 怪物。我们仍然希望支持那里使用的一些旧 URL,因为它们可能仍会在电子邮件等地方的某个地方 float 。

例如:我们旧系统使用的URL是~/Password.aspx,新MVC系统中的URL是~/Home/Password。

为了支持这些旧的 URL,我们只是将它们添加到路由表中,例如

    routes.MapRoute(
"Password",
"Password.aspx",
new {
controller = "Home",
action = "Password",
id = ""
}
);

这很好用,但是每当我们在代码中使用 Url.Action("Password", "Home") 时,它都会生成旧的 URL("~/Password.aspx"而不是 "~/Home/Password") .由于我们想慢慢淘汰旧的 URL,如果 MVC 路由仍然“理解”旧的 URL 但只使用/编写新的 URL,那就太好了。

有什么办法可以实现吗?

最佳答案

在路由表中将新路由放在旧路由之上。路由越高,它的优先级就越高:

routes.MapRoute(
"PasswordNew",
"Home/Password",
new {controller = "Home",
action = "Password",
id = ""
}
);

routes.MapRoute(
"Password",
"Password.aspx",
new {
controller = "Home",
action = "Password",
id = ""
}
);

关于asp.net-mvc - ASP.NET MVC : How to "understand" legacy URLs but not write them?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1975956/

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