这是快速的情况......
我正在尝试使以下网址正常工作...
http://localhost:57732/Power-Drills/DeWalt
我定义了以下控制器...
namespace MvcApplication1.Controllers
{
public class ProductController : Controller
{
public ActionResult PowerDrills(string brandName)
{
...
}
public ActionResult ProductLine(Int64 id)
{
...
}
}
}
在 global.asax 中,我定义了以下路线...
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "PowerDrill",
url: "Power-Drills/{brandName}",
defaults: new { controller = "Product", action = "PowerDrills", brandName= "RYOBI" },
namespaces: new[] { "MvcApplication1.Controllers" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我收到以下错误...“找不到与名为”“产品”的控制器匹配的类型。"
所以它似乎表明它找不到 Product 控制器,但是......这个url 工作得很好(使用默认路由)并且由Product 控制器处理......
http://localhost:57732/Product/ProductLine/4
我已经阅读了路由并理解(至少我认为我知道)url 段,它们如何映射到控制器和操作以及 global.asax 中的顺序如何重要;我已经为其他人看到并阅读了有关此问题的几篇以前的帖子,但他们的解决方案没有奏效或不适用于我的情况(很多 Ruby for Rails 帖子)。
这篇文章指出,Controller 类需要继承自“Controller”而不是“ApiController”,正如您所看到的,我的已经这样做了。
所以我不确定发生了什么,并欢迎任何指导!
谢谢你,
-G