[英]Wrong MVC route matched. Asp.net
这是我的路线注册代码:
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 }
);
我有一个链接/ course / view / 87
而匹配的路线是/ course / list
谁能解释为什么?
谢谢
更新:
route.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 = "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错误。
您的路线/视图/ {Id}路线似乎具有“列表”操作。 我希望这是一个错字。
将这些路由添加到一个空的Asp.Net Mvc 4项目中,并使用routedebugger( http://nuget.org/packages/routedebugger/ ),我将获得一个匹配的路由“ course / view / {id}”。 您应该在本地使用routedebugger查看发生了什么。 上面的代码似乎很好。
button元素被视为提交按钮(即,如果未设置默认类型属性,则为type =“ submit”)。 因此,浏览器启动了一个发布请求,由于我所有的动作都是get(),因此路由没有满足。
谢谢大家的时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.