0

我有一个 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 操作。这就是为什么我认为这是一个路由配置问题。不幸的是,我不明白我的配置错误。有人可以指出我正确的方向吗?

谢谢!

4

2 回答 2

0

您定义的第一条路线可能应该是这个

routes.MapRoute(
  "AddProductStep1",
  "{controller}/addProduct",
  new { controller = "Core", action = "AddProduct" }
);

mvc 中的 url 是 controller/action/param/param/etc 你的第一条路线是寻找 Core/Products/一些名为 add

于 2013-02-01T18:22:55.577 回答
0

如果您配置了默认路由:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

访问时/core/products/add,您将被重定向到:

控制器 = 核心
行动 = 产品
id = 添加

这解释了奇怪的行为。

于 2013-02-01T18:23:34.863 回答