使用MvcExtensions未在MVC 4中显示的区域

时间:2012-07-27 12:33:32

标签: c# asp.net-mvc asp.net-mvc-4 autofac mvcextensions

我正在使用ASP.NET MVC 4 RC以及最新版本的MvcExtensionsMvcExtensions.Autofac

我不知道MVC 4是否与MVC 3的工作方式不同,但在使用MvcExtensions时我的区域根本没有显示。下面的代码是我在MVC 3应用程序中使用它的方式。我刚刚复制并粘贴到我的MVC 4应用程序中。如果我使用MVC 4应用程序附带的默认Global.asax.cs文件,那么我的区域将正确显示。这必须以不同方式完成吗?

我将Global.asax.cs文件替换为:

public class MvcApplication : AutofacMvcApplication
{
     public MvcApplication()
     {
          Bootstrapper.BootstrapperTasks
               .Include<RegisterAreas>()
               .Include<RegisterControllers>()
               .Include<RegisterRoutesBootstrapper>()
               .Include<AutoMapperBootstrapper>()
               .Include<FluentValidationBootstrapper>();
     }

     protected override void OnStart()
     {
          FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

          base.OnStart();
     }
}

RegisterRoutesBootstrapperAutoMapperBootstrapperFluentValidationBootstrapper是我的自定义引导程序类。

1 个答案:

答案 0 :(得分:1)

我刚刚使用MvcExtensions(v2.5.0)和自定义区域创建了一个测试Mvc4应用程序。一切都适合我。

请确保您的root web.config文件中包含bindingRedirects:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

如果没有这些绑定重定向区域将无法正常工作。