我正在使用NuGet包MvcSiteMapProvider MVC4。当我运行MvcSiteMapProvider.Web.Mvc.XmlSiteMapController.RegisterRoutes(路由); using this method,运行localhostXXX / sitemap.xml时出现以下错误
[InvalidOperationException:尝试创建“MvcSiteMapProvider.Web.Mvc.XmlSiteMapController”类型的控制器时发生错误。确保控制器具有无参数的公共构造函数。]
表面上看,MvcSiteMapProvider.Web.Mvc.IXmlSiteMapResultFactory xmlSiteMapResultFactory为null,但我不知道为什么(或坦率地说,这意味着什么)。
我根本没有弄乱路线,但我已经开发了一些网站。我创建了一个XmlSiteMapController的自定义版本,并为它提供了重载的空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)
{