我使用 < a href=> "http://mvcextensions.github.com/" rel="nofollow" >MVC 扩展与自动法克 < /a >, 我对自己的区域有问题。 我不知道我在做什么错。
最初,我的global.asax.cs
中有以下内容:
public class MvcApplication : AutofacMvcApplication
{
public MvcApplication()
{
Bootstrapper.BootstrapperTasks
.Include<RegisterControllers>();
}
}
protected override void OnStart()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
base.OnStart();
}
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
有了这个代码,我的区域就展示得很好。 http://localhost:19857/dection
展示了我的索引视图。
如果我要MVC扩展程序登记我的路线和地区,那么http://localhost:19857/dection
显示的只是404个错误。
这是更新的global.asax.cs
, 登记我的路线和地区:
public class MvcApplication : AutofacMvcApplication
{
public MvcApplication()
{
Bootstrapper.BootstrapperTasks
.Include<RegisterAreas>()
.Include<RegisterControllers>()
.Include<RegisterRoutesBootstrapperTask>();
}
protected override void OnStart()
{
RegisterGlobalFilters(GlobalFilters.Filters);
base.OnStart();
}
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
我的RegisterRoutesBoootstrapper Task 类
:
public class RegisterRoutesBootstrapperTask : RegisterRoutesBase
{
public RegisterRoutesBootstrapperTask(RouteCollection routes)
: base(routes)
{
}
protected override void Register()
{
Routes.Clear();
Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
}
为什么我不能展示我的区域?
<强> UPDATE 强>
当我去http://localhost:19857/dection
,然后默认于 Dashboard 控制器索引视图。
public override string AreaName
{
get
{
return "Administration";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Administration_default",
"Administration/{controller}/{action}/{id}",
new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
);
}