我有一个ASP.NET MVC 4应用程序。由于某种原因,路由总是抛弃我。目前,我的RouteConfig.cs文件有三个路径:
routes.MapRoute(
"AddProductStep1",
"{controller}/products/add",
new { controller = "Core", action = "AddProduct" }
);
routes.MapRoute(
"Products",
"{controller}/products",
new { controller = "Core", action = "Products" }
);
routes.MapRoute(
"Home",
"{controller}/dashboard",
new { controller = "Core", action = "Dashboard" }
);
如果我访问/ core / products,我会看到与我的产品相关的视图。如果我访问/ core / products / add,我仍然会看到相同的视图。我在我的控制器中设置了一个断点,并注意到在两种情况下都调用了Products操作。这就是为什么我认为这是一个路由配置问题。不幸的是,我不明白我的配置错误。有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:0)
您定义的第一条路线应该是这样的
routes.MapRoute(
"AddProductStep1",
"{controller}/addProduct",
new { controller = "Core", action = "AddProduct" }
);
mvc中的url是controller / action / param / param / etc. 您的第一条路线是寻找Core / Products / 一些名为add
的参数答案 1 :(得分:0)
如果您配置了默认路由:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
访问/core/products/add
时,您将被重定向到:
controller = Core action = Products id = Add
这解释了这种奇怪的行为。