我正在研究包含多个功能的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);
}
}
我在那里做错了吗?