这是我的路线注册码:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"course_list",
"course/list",
new { controller = "course", action = "list" }
);
routes.MapRoute(
"course_view",
"course/view/{id}",
new { controller = "course", action = "list", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我有一个链接/课程/视图/ 87
匹配的路线是/ course / list
任何人都可以解释原因吗?
谢谢
更新:
routes.IgnoreRoute( “{}资源个.axd / {*} PATHINFO”);
routes.MapRoute(
"course_list",
"course/list",
new { controller = "course", action = "list" }
);
routes.MapRoute(
"course_view",
"course/view/{id}",
new { controller = "course", action = "view", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
但我仍然遇到同样的问题。 当我访问:/ course / view / 87时,我收到404错误。
答案 0 :(得分:0)
您的航线/观看/ {Id}路线似乎有“列表”操作。我希望这是一个错字。
答案 1 :(得分:0)
将这些路线添加到空的Asp.Net Mvc 4项目并使用routedebugger(http://nuget.org/packages/routedebugger/),我得到一个匹配的路线“course / view / {id}”。您应该在本地使用routedebugger来查看正在发生的事情。上面的代码似乎没问题。
答案 2 :(得分:0)
按钮元素被视为提交按钮(即:type =“submit”,如果没有设置默认类型属性)。因此,浏览器启动了一个post请求,没有路由满足,因为我的所有操作都是get(s)。
谢谢大家的时间。