0

我正在使用 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)
    {
4

0 回答 0