我必须在这里寻求帮助,因为我不知道它是如何发生的,这里有什么问题。
以下是路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "View",
url: "{controller}/{action}/{id}/{cid}/{pid}",
defaults: new { controller = "Read", action = "R", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional }
);
routes.MapRoute(
name: "JsonResult",
url: "jsonresult/{id}/{cid}/{pid}",
defaults: new { controller = "Find", action = "Readable", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Read", action = "Index" }
);
}
现在有几个问题:
首先 - 底部的默认设置根本不起作用。由于某种原因,我实际上将"View"
路由设为Default
路由。
第二个 - JsonResult
路线获得404 error
,如果我将其放在顶部,它会消失,但View
路线无效。
我真的不知道如何解决; l
答案 0 :(得分:0)
始终将您的默认路线置于顶部。
来到您的jsonresult
问题,您缺少控制器名称。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new { controller = "Read", action = "Index" }
);
routes.MapRoute(
name: "View",
url: "{controller}/{action}/{id}/{cid}/{pid}",
defaults: new { controller = "Read", action = "R", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional }
);
routes.MapRoute(
name: "JsonResult",
url: "{controller}/{id}/{cid}/{pid}", /*Changed to Controller here*/
defaults: new { controller = "Find", action = "Readable", id = UrlParameter.Optional, cid = UrlParameter.Optional, pid = UrlParameter.Optional}
);
}