MVC3中的RedirectToAction返回“路由表中没有路由匹配提供的值”

时间:2013-06-13 21:01:28

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor

我在控制器中使用此日志:

public ActionResult Index(LoginModel model)
    {
      if (model.usernam == "usernam" && model.password == "password")
            {
                    return RedirectToAction("Index", "Home");
                }

        return View();

    }

此RedirectToAction返回此异常:路由表中的路由与提供的值不匹配。 在我的Globa.asax中我有这些值,我认为它可以解决问题,但我不知道如何

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

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

    }
我用谷歌搜索网上搜索了很多建议,但没有任何效果。 对此有什么解决方法吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

如果你注意上面的代码,你就会错过没有参数的默认路由。