1

当我开始调试我的 MVC Web 应用程序时,地址栏中的 URL 如下:

http://localhost:#####/

这称为 Home/Index 路由。当我在地址栏中开始调试时,有没有办法包含 Home/Index 部分,如下所示:

http://localhost:#####/Home/Index

我不太明白为什么地址首先不显示 Home/Index 部分。有人可以澄清一下吗?

4

6 回答 6

2

只需在项目|属性中设置它:

在此处输入图像描述

选择特定页面并将其设置为: Home/Index

但请考虑真正的访问者将如何访问您的网站,以及您希望发生什么。

于 2012-07-11T19:35:01.347 回答
2

我不太明白为什么地址首先不显示 Home/Index 部分。有人可以澄清一下吗?

原因是在 MVC 的设计中,作者很可能认为最好隐藏无用的信息。

例如,这两个都使用默认路由在同一个控制器上运行相同的操作:

http://localhost:xxxx/
http://localhost:xxxx/Home/Index

第二个有什么好处?它更长吗?

因此,默认情况下,如果路由匹配或部分匹配,它将从 url 中删除。

使用默认控制器(带有 AboutController),以下 url 也是相同的:

http://localhost:xxxx/About
http://localhost:xxxx/About/Index

再次,第二个的优势是什么?

于 2012-07-11T19:44:34.650 回答
1

您需要通过以下方式在 RegisterRoute 方法中注册路由:

routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );
于 2012-07-11T19:34:36.357 回答
0

第二个没有优势。第二个路径被用作第一个路径的默认路径。

于 2012-07-12T09:11:40.217 回答
0

您几乎可以肯定在 global.asax.cs 中设置了默认路由。

于 2012-07-11T19:31:15.927 回答
0

在项目属性的 Web 选项卡中指定起始 URL绝对)或特定页面相对)。

开始操作->开始 URLhttp://localhost:#####/Home/Index

于 2012-07-11T19:32:09.973 回答