如何在创建具有多个功能的模块时使用[OrchardFeature()]?

时间:2016-10-03 19:02:22

标签: orchardcms orchard-modules orchardcms-1.10

我正在研究包含多个功能的Orchard CMS模块,我发现果园有一个属性[OrchardFeature(“Feature.Name”)],需要应用于多个功能。

在我的情况下,我需要Controller和Route作为同一功能的一部分,所以我将属性应用于两者,但在这种情况下,我的控制器返回404.

如果我尝试删除该属性,它可以正常工作,并且可以找到我的控制器的操作

[OrchardFeature("Yaplex.SEO.Robots")]
public class RobotsTxtController : Controller
{
    // GET: RobotsTxt
    public ActionResult Index()
    {
        return Content("I am robots txt");
    }
}

[OrchardFeature("Yaplex.SEO.Robots")]
public class Routes : IRouteProvider {
    public IEnumerable<RouteDescriptor> GetRoutes() {
        return new[] {
            new RouteDescriptor {
                Priority = 10,
                Route = new Route(
                    "robots.txt", 
                    new RouteValueDictionary {
                        {"area", "Yaplex.SEO"},
                        {"controller", "RobotsTxt"},
                        {"action", "Index"}
                    },
                    new RouteValueDictionary(),
                    new RouteValueDictionary {
                        {"area", "Yaplex.SEO"}
                    },
                    new MvcRouteHandler())
            }
        };
    }

    public void GetRoutes(ICollection<RouteDescriptor> routes) {
        foreach (var routeDescriptor in GetRoutes())
            routes.Add(routeDescriptor);
    }
}

我在那里做错了吗?

0 个答案:

没有答案