我正在使用 NuGet 包 MvcSiteMapProvider MVC4。当我运行 MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(routes); 使用这种方法,当我运行 localhostXXX/sitemap.xml 时出现以下错误
[InvalidOperationException:尝试创建类型为“MvcSiteMapProvider.Web.Mvc.XmlSiteMapController”的控制器时发生错误。确保控制器有一个无参数的公共构造函数。]
表面上看,MvcSiteMapProvider.Web.Mvc.IXmlSiteMapResultFactory xmlSiteMapResultFactory 为空,但我不知道为什么(或者坦率地说,这意味着什么)。
我根本没有弄乱路线,但我已经开发了一些站点。我创建了 XmlSiteMapController 的自定义版本,并为它提供了重载的 null XmlSiteMapController 方法,但我对 IXmlSiteMapResultFactory 一点也不熟悉,此外,为什么它首先尝试调用 null 方法?只是为了覆盖基础,我已经卸载并重新安装了 MvcSiteMapProvider MVC4。
在我所有其他网站上都可以正常工作......有什么想法吗?
编辑***
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
MyAPI.Controllers.CustomXmlSiteMapController.RegisterRoutes(routes);
然后在那里制作了一个空白控制器(用于跟踪):
public CustomXmlSiteMapController()
{
}
与...一起去
public CustomXmlSiteMapController(MvcSiteMapProvider.Web.Mvc.IXmlSiteMapResultFactory xmlSiteMapResultFactory)
{