Asp.net mvc 默认路由问题

Asp.net mvc 默认路由问题,asp.net-mvc,Asp.net Mvc,如果我想点击像这样的url 我希望“索引”操作是调用的默认操作。我假设默认的路由映射很好,并且“索引”操作将在指定的任何控制器上调用——似乎我需要指定 这是正确的吗 映射: routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", act

如果我想点击像这样的url 我希望“索引”操作是调用的默认操作。我假设默认的路由映射很好,并且“索引”操作将在指定的任何控制器上调用——似乎我需要指定

这是正确的吗

映射:

 routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

你所尝试的肯定会奏效。事实上,您发布的代码来自默认模板,我刚刚通过向AccountController添加“索引”操作并在浏览器中访问/Account对其进行了测试


我建议您创建一个新项目并测试此行为(首先使用内置web服务器,然后使用IIS,如果您不总是使用内置服务器)。如果它有效,则可能是您的项目中的某些不同内容导致了此问题。

我遇到了类似的问题,原因是与项目中的目录发生冲突。我在我的项目中有这样一个结构:

Controllers \
             HomeController.cs
             CmsController.cs
Cms \
     WhateverFile.cs

Cms
子目录与
/Cms
URL冲突,而
Cms/Index
起作用。我只是重命名了我的冲突文件夹名。如果您必须保留它,可以使用一个用于防止自动查找文件的。如果启用了该功能,我认为必须为脚本等添加许多排除项,请参见示例。

我们可以查看您的其他路线吗?也许其他人正在优先考虑?我已经设置了这个路由,并且显示来访问这个路由的url是routes.MapRoute(“默认”,“路由名称”{controller}/{action}/{id}),//url参数new{controller=“Customers”,action=“Index”,id=UrlParameter.Optional}//参数默认值)@霍克尼:我通常也用同样的路线。我只有一个如上所述的路线映射,并获得了一个404,我试图访问@spender-没有其他路线映射!您的服务器似乎有问题。据我所知,你正在运行自己的IIS。尝试在VS的开发服务器上运行相同的应用程序,如果仍然存在相同的问题,请报告。