路由映射突然中断。怎么修?

时间:2011-09-23 08:15:30

标签: asp.net-mvc

我的MVC应用程序的路由映射突然中断。

这是路由映射

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

这是控制器代码

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public string Login()
    {
        return "Login";
    }
}

我可以使用http://localhost:49637/访问“索引”视图,但我无法通过http://localhost:49637/Login访问“登录”视图。如果我尝试通过http://localhost:49637/Home/Login访问“登录”视图,则可以正常运行。

1 个答案:

答案 0 :(得分:1)

您没有匹配的路由 - 'http:// localhost:49637 / Login',因为您的唯一路由查找控制器和操作值,并且您只传递一个值,因此MVC正在尝试路由您到一个不存在的“登录”控制器。我没有测试过这个,但添加这样的东西可以解决你的问题 -

routes.MapRoute(
    "Login",
    "Login",
    new { controller = "Home", action = "Login" }
);

请记住,asp.net MVC将使用它找到的第一个匹配路线,因此您需要将此路线置于RegisterRoutes功能中的“默认”路线之上。