默认路由在.NET MVC 1(和2)中不起作用

时间:2013-07-15 22:16:19

标签: asp.net-mvc asp.net-mvc-routing

我的默认路线非常简单,但在没有完全限定整个路线的情况下,页面无法正确加载。

以下是我使用的路线:

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

这是HomeController中应用程序中唯一的操作:

public ActionResult Index()
{
    return Content("New stuff");
}

使用以下网址:

http://localhost:8081/NewMvc1/

我得到The incoming request does not match any route.

使用:

http://localhost:8081/NewMvc1/Home
http://localhost:8081/NewMvc1/Home/Index

我得到一个404 Mvc页面,说它试图用静态文件处理请求。

然而,终于有了一个完全合格的网址'

http://localhost:8081/NewMvc1/Home/Index/1

我从一个且只有一个动作获得预期的结果输出。

New Stuff

这看起来并不正确。我也从同一个应用程序中获得了执行操作失败(不确定是否相关)。

我已经使用了Phil Haack的RouteDebugger来实现这一点,它指出,当可选参数丢失时,它与URL不匹配,但是在提供这些参数时也是如此。< / p>

1 个答案:

答案 0 :(得分:0)

您错过了默认设置中的id

new { controller = "Home", action = "Index", id = UrlParameter.Optional }