如果我想打个网址就好 http://localhost:8080/controllername 我希望“索引”操作成为默认的操作。我假设默认的路由映射会很好,并且在指定的控制器上将调用“Index”操作 - 似乎我需要指定 http://localhost:8080/controllername/index
这是对的吗?
映射:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
答案 0 :(得分:0)
你所尝试的应该绝对有用。实际上,您发布的代码来自默认模板,我刚刚通过向AccountController添加“索引”操作并在我的浏览器中访问/帐户来测试它。
我建议创建一个新项目并测试此行为(首先使用内置Web服务器,然后使用IIS,如果您不总是使用内置服务器)。如果它有效,那么你的项目中可能会出现一些不同的问题。
答案 1 :(得分:0)
我遇到了类似的问题,因为与项目中的目录发生了冲突。我的项目中有一个这样的结构:
Controllers \
HomeController.cs
CmsController.cs
Cms \
WhateverFile.cs
Cms
子目录与/Cms
网址冲突,Cms/Index
工作。我只是重命名了我的碰撞文件夹名称。如果必须保留它,可以使用RouteCollection.RouteExistingFiles
来防止自动查找文件。如果启用了该功能,我认为必须为脚本等添加大量排除项,请参阅this blog post以获取示例。