我的路线注册如下:
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并匹配正确的路线。当我访问/ course / list页面,然后单击该页面上指向/ course / view / 87的链接时,我找不到404:/ course / list。有什么想法吗?
谢谢
答案 0 :(得分:1)
按钮元素被视为提交按钮(即:type ="提交"如果没有设置默认类型属性)。因此,浏览器启动了一个post请求,没有路由满足,因为我的所有操作都是get(s)。
谢谢大家的时间。
答案 1 :(得分:0)
目前
http://hspot.ca/course/list
匹配
True course/list controller = course, action = list
但是提供了404.(这与你的写作不同,你说这个页面有效)。
当找不到可以处理路由及其参数的控制器/动作组合时,返回这样的404。确保你有一个
CourseController ,其中 List()方法没有参数。
答案 2 :(得分:0)
我认为你有点过分复杂了。你根本不需要前两个路线,仅靠dafault就可以了。此外,我认为将动作命名为“视图”是一个坏主意,是否还有其他选择?这只是在寻找麻烦。
像这样构建你的项目:
Controllers/Course/CourseController.List.cs - Partial with List() method
Controllers/Course/CourseController.View.cs - Partial with View(string id) method
Views/Course/List.cshtml
Views/Course/View.cshtml
你应该以更少的麻烦得到你想要的东西。
祝你好运!!