gpt4 book ai didi

asp.net-mvc - 如何强制 MVC 路由到 Home/Index 而不是 root?

转载 作者:行者123 更新时间:2023-12-04 14:58:05 25 4
gpt4 key购买 nike

如果我创建一个 MVC 操作或操作链接,例如@Url.Action("Index", "Home")"我被重定向到 http://www.example.com ,但我想要的是强制它重定向到 http://www.example.com/Home/Indexhttp://www.example.com/Home .有没有办法显式渲染完整路径?我的谷歌搜索空空如也。

最佳答案

Url.Action() 使用路由生成 URL。所以如果你想改变它,你必须改变它。它目前说默认 Controller 是 Home默认操作是 Index .将它们更改为其他任何内容,然后它应该会给您一个不同的 URL。

例如你的路由配置可能是这样的:

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

将默认值更改为其他任何内容或删除它们:
 routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);

请注意,这样做意味着您的页面只能被完整的 controller/action 访问。路径,因此您可能想要创建一个登录页面并将其设为默认页面。

如果你绝对需要知道一个 Action 的完整 URL,那么你可以这样做。首先创建一个额外的路由并将其放在路由配置的底部。默认情况下,系统永远不会使用它:
routes.MapRoute(
name: "AbsoluteRoute",
url: "{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);

然后在代码中你可以调用它(不确定它在 Razor 中是否可用,但编写一个辅助方法应该很容易):
var fullURL = UrlHelper.GenerateUrl("AbsoluteRoute", "Index", "Home", null, null, null, null, System.Web.Routing.RouteTable.Routes, Request.RequestContext, false);

关于asp.net-mvc - 如何强制 MVC 路由到 Home/Index 而不是 root?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26301573/

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