2013-07-15 45 views
0

我的默认路由非常简单,但如果没有完全限定整个路由,页面无法正确加载。默认路由不能在.NET MVC 1(和2)中工作

下面是我使用的路线:

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,上面写着它试图处理与静态文件的请求。

然而,最后用一个“完全合格的URL”

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

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

New Stuff 

这似乎并不正确。我也一直无法从这个相同的应用程序执行操作(不知道这是相关的)。

我已经使用了Phil Haack的RouteDebugger来实现这个目标,它指出当可选参数丢失时它不匹配URL,但是当提供这些参数时它没有匹配URL。

回答

0

你错过了从默认的id

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