我的问题基本相同: Trying to setup root homepage using routing 我尝试过不同的MapRoute()变体,包括命名空间方法。
但解决方案(使用属性路由[Route("~/")]
)不适用于我,因为我有一个引用的dll(基本上是另一个持有我的登录和帐户控制器的项目)已经有[路由("〜/) ")]在自己的仪表板中。
当我在我的项目控制器中实现[Route("〜/")]作为根路由时,它被检测为重复: "找到了与URL匹配的多种控制器类型。"
我尝试继承父项目的仪表板控制器(带~/
的控制台)并且不使用[Route("〜/")]在我的任何地方,但是它会产生与使用的ViewModel不匹配的其他问题,我不允许操纵它。
有没有办法去"隐藏" /"覆盖" /"忽略"来自我的父dll的根路由让我以root身份使用我自己的行为?
我也试图避免使用控制器工厂,因为我有其他几个引用的dll,将它们一个一个地添加它们是愚蠢的。
更新 我们的Global.asax(我们有相同的,它注册所有区域):
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
ValueProviderFactories.Factories.Remove(
ValueProviderFactories.Factories.OfType<JsonValueProviderFactory>().First());
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine());
SiteInitialization.ApplicationStart();
}
...