默认路由问题

时间:2010-11-29 10:18:18

标签: asp.net-mvc

如果我想打个网址就好 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
        );

2 个答案:

答案 0 :(得分:0)

你所尝试的应该绝对有用。实际上,您发布的代码来自默认模板,我刚刚通过向AccountController添加“索引”操作并在我的浏览器中访问/帐户来测试它。

我建议创建一个新项目并测试此行为(首先使用内置Web服务器,然后使用IIS,如果您不总是使用内置服务器)。如果它有效,那么你的项目中可能会出现一些不同的问题。

答案 1 :(得分:0)

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

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

Cms子目录与/Cms网址冲突,Cms/Index工作。我只是重命名了我的碰撞文件夹名称。如果必须保留它,可以使用RouteCollection.RouteExistingFiles来防止自动查找文件。如果启用了该功能,我认为必须为脚本等添加大量排除项,请参阅this blog post以获取示例。