当我开始调试我的 MVC Web 应用程序时,地址栏中的 URL 如下:
http://localhost:#####/
这称为 Home/Index 路由。当我在地址栏中开始调试时,有没有办法包含 Home/Index 部分,如下所示:
http://localhost:#####/Home/Index
我不太明白为什么地址首先不显示 Home/Index 部分。有人可以澄清一下吗?
当我开始调试我的 MVC Web 应用程序时,地址栏中的 URL 如下:
http://localhost:#####/
这称为 Home/Index 路由。当我在地址栏中开始调试时,有没有办法包含 Home/Index 部分,如下所示:
http://localhost:#####/Home/Index
我不太明白为什么地址首先不显示 Home/Index 部分。有人可以澄清一下吗?
只需在项目|属性中设置它:
选择特定页面并将其设置为: Home/Index
但请考虑真正的访问者将如何访问您的网站,以及您希望发生什么。
我不太明白为什么地址首先不显示 Home/Index 部分。有人可以澄清一下吗?
原因是在 MVC 的设计中,作者很可能认为最好隐藏无用的信息。
例如,这两个都使用默认路由在同一个控制器上运行相同的操作:
http://localhost:xxxx/
http://localhost:xxxx/Home/Index
第二个有什么好处?它更长吗?
因此,默认情况下,如果路由匹配或部分匹配,它将从 url 中删除。
使用默认控制器(带有 AboutController),以下 url 也是相同的:
http://localhost:xxxx/About
http://localhost:xxxx/About/Index
再次,第二个的优势是什么?
您需要通过以下方式在 RegisterRoute 方法中注册路由:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
第二个没有优势。第二个路径被用作第一个路径的默认路径。
您几乎可以肯定在 global.asax.cs 中设置了默认路由。
在项目属性的 Web 选项卡中指定起始 URL(绝对)或特定页面(相对)。
开始操作->开始 URL:http://localhost:#####/Home/Index