假设我的MVC应用程序中有这个主控制器:
[RouteArea("Blog")]
public class PageController : BaseAppController
{
}
[RouteArea]
// Called on mydomain/Blog
// and also called on mydomain/
public class BaseAppController : Controller
{
[Route]
public ActionResult Index()
{
return Content("this is the index file form the main controller");
}
}
正如预期的那样,我会在Index
上获得mydomain/Blog
行动,但出于某种原因,我也会在我的/
中得到它,这与另一个我从另一个观点发生的冲突相冲突控制器。
我的任何根源都没有任何默认设置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.MapMvcAttributeRoutes(new CustomDirectRouteProvider());
}
任何想法是什么问题?
答案 0 :(得分:0)
它出现了我需要将基类设置为abstract
,因为它位于层次结构的顶部,因此其他视图不会访问任何其他实例。
所以在上面的例子中:
[RouteArea("Blog")]
public class PageController : BaseAppController
{
}
[RouteArea]
// is going to be called just on mydomain/Blog and not on mydomain/
public abstract class BaseAppController : Controller
{
[Route]
public ActionResult Index()
{
return Content("this is the index file form the main controller");
}
}