Asp.net mvc 默认路由问题
如果我想点击像这样的url 我希望“索引”操作是调用的默认操作。我假设默认的路由映射很好,并且“索引”操作将在指定的任何控制器上调用——似乎我需要指定 这是正确的吗 映射: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
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的开发服务器上运行相同的应用程序,如果仍然存在相同的问题,请报告。