gpt4 book ai didi

c# - 在 asp .net mvc 中路由

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

我在 Visual Studio 中创建了一个默认的 ASP .NET MVC 4 Internet 应用程序。

在_Layout.cshtml中,对于HomeAboutContact三个 Action 链接的情况,home 链接转到 http://localhost,但其他两个链接转到相应的操作和 Controller ((http://localhost/home/about) 和(http://localhost/home/contact))。

为什么会出现这样的差异。仅仅因为家庭 Controller 的索引操作是默认的,编译器是否认为 homehtml.action 链接将转到 http://localhost 并且不是 http://localhost/home/index。 ?

这是_Layout.cshtml中的代码

<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>

routeconfig.cs中的代码是

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

编辑

我知道 http://localhost 将重定向到 home Controller 的 index 操作,但为什么 html.actionlink 给出了链接作为 http://localhost 而不是 http://localhost/home/index。 ?

编辑2

routeconfig 中的这个 defaults 意味着如果 url 只是本地主机,则只有默认操作和 Controller 才会被执行。执行routeconfig时,解析的url为localhost。我的问题是为什么不是 localhost/home/index,因为在 actionlink 中我们指定了 Controller 和操作的名称?编译器是否如此智能以至于 localhost/home/index 的 url 被简单地转换为 localhost

我知道本地主机被重定向到主 Controller 的索引操作,但我的问题是在_Layout.cshtml指定的主页中,为什么主页链接的url与那个不同关于和联系人?

最佳答案

可能是因为这个:

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

您为 defaults 传递的内容...

关于c# - 在 asp .net mvc 中路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23148371/

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