0

我正在尝试制作自定义路线,但我无法让它工作,即使一切看起来都很好,它总是返回 404。

所以这里是定义的路线。

它在默认值之前首先定义,根据路由调试器,这是被命中的路由。(Matched Route: Game/{id}/{title})

routes.Add(
    "GamesDefault",
    new Route("Game/{id}/{title}",
    new RouteValueDictionary(new { controller = "Games", action = "ShowGame" }),
    new DefaultMvcRouteHandler(urlTranslator, urlFoundAction)));

这是我试图达到的路径:/Game/5/test

这是控制器声明。位于GamesControllerControllers 文件夹中,其视图位于Views/Games/showGames.cshtml.

public GamesController()
{
}

public ActionResult ShowGames(int id, string title)
{
    return View(title);
}

DefaultMvcRouteHandler 没有做任何花哨的事情。

public class DefaultMvcRouteHandler : IRouteHandler
{
    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        return new MvcHandler(requestContext);
    }
}

默认路由没有问题,我已经尝试了所有我能找到的东西,比如更改路由的名称,所以它不匹配任何文件夹或类似的东西。如果有人对更多尝试有任何想法,我将不胜感激。

4

1 回答 1

0

根据我的评论,您为controller和值传递了不正确的默认路由action值。

像这样更新您的路线:

routes.Add(
   "GamesDefault",
   new Route("Game/{id}/{title}",
   new RouteValueDictionary(new { controller = "GamesController", action = "ShowGames" }),
   new DefaultMvcRouteHandler(urlTranslator, urlFoundAction)));
于 2013-03-20T19:22:04.400 回答