gpt4 book ai didi

c# - 如何在 ASP.NET MVC 5 中为特定 Controller 指定路由选项

转载 作者:太空宇宙 更新时间:2023-11-03 13:23:01 24 4
gpt4 key购买 nike

我想从路由中抑制 Controller ,并且使用它工作正常:

         routes.MapRoute(
name: "HomePages",
url: "{action}",
defaults: new { controller = "Home", action = "Index" }
);

问题是当对不同的 Controller (如“帐户”)执行相同操作时,第一个选项只会生效:

            routes.MapRoute(
name: "LoginRoute",
url: "{action}",
defaults: new { controller = "Account", action = "Login" }
);

我的目标是从路由中隐藏 Controller ,这样我就可以直接访问 mysite.com/login 和 mysite.com/index,当登录在帐户 Controller 下并且索引在家庭 Controller 下时如何实现?

如何为帐户操作指定第二个选项,并为主页操作保留第一个?

最佳答案

您是否考虑过使用路由属性,例如:

[Route("{getId:int}")]
public ActionResult Show(int getId) { ... }

您可以将它与旧的路由方式结合使用。您确实需要在配置中明确设置此功能:

public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapMvcAttributeRoutes();
}
}

我发现路由属性使得在我的 Controller 方法上设置好的路由变得非常容易。这也渗透到 web api 和 RESTFul 的东西中。

关于c# - 如何在 ASP.NET MVC 5 中为特定 Controller 指定路由选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23451250/

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