我正在尝试制作一个自定义路线,但我无法使其工作,即使一切似乎都没问题,它总是会返回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
这是Controller声明。 GamesController
位于Controllers文件夹中,其视图位于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);
}
}
默认路由可以正常工作,我已经尝试了所有可以找到的内容,例如更改路由的名称,因此它不匹配任何文件夹或类似的东西。 如果有人对更多的尝试有任何想法,我将非常感激。
答案 0 :(得分:0)
根据我的评论,您传递的controller
和action
值的默认路线值不正确。
像这样更新您的路线:
routes.Add(
"GamesDefault",
new Route("Game/{id}/{title}",
new RouteValueDictionary(new { controller = "GamesController", action = "ShowGames" }),
new DefaultMvcRouteHandler(urlTranslator, urlFoundAction)));