我已将一个新控制器“LoggingController”添加到已经有多个控制器的 MVC 4 应用程序中。现在我注意到这个控制器的路由行为与已经存在的不同。
例如,以下两个 url 按预期正常工作,并点击了 BlogController 中的“Index”方法。
http://localhost:56933/Blog/
http://localhost:56933/Blog/Index
除了我添加的控制器之外,所有其他控制器也是如此:
http://localhost:56933/Logging/Index
- 正常工作,点击 LoggingController 中的“Index”方法
http://localhost:56933/Logging/
- 返回“'/' 应用程序中的服务器错误。找不到资源。”
除了显而易见的事情,我应该从哪里开始寻找?
这是来自 LoggingController 的索引签名
public ActionResult Index(int? page, string Period, string LoggerProviderName, string LogLevel, int? PageSize)
MapRoute 中没有特定于某个控制器的内容。这是完整的 RouteConfig 供参考:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Display",
url: "Post/{id}/{seofriendly}",
defaults: new { controller = "Post", action = "Display", id = UrlParameter.Optional, seofriendly = ""}
);
routes.MapRoute(
name: "SEOFriendly",
url: "{controller}/{action}/{id}/{seofriendly}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, seofriendly = "" }
);
routes.MapRoute(
name: "SEOFriendlyNoId",
url: "{controller}/{action}/{seofriendly}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, seofriendly = "" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}