我的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访问“登录”视图,则可以正常运行。
答案 0 :(得分:1)
您没有匹配的路由 - 'http:// localhost:49637 / Login',因为您的唯一路由查找控制器和操作值,并且您只传递一个值,因此MVC正在尝试路由您到一个不存在的“登录”控制器。我没有测试过这个,但添加这样的东西可以解决你的问题 -
routes.MapRoute(
"Login",
"Login",
new { controller = "Home", action = "Login" }
);
请记住,asp.net MVC将使用它找到的第一个匹配路线,因此您需要将此路线置于RegisterRoutes
功能中的“默认”路线之上。