将Asp.Net MVC 4添加到Asp.Net Webforms 4.5 Web应用程序

时间:2013-10-01 20:10:55

标签: asp.net asp.net-mvc asp.net-mvc-4 razor webforms

我尝试按照这些说明将Asp.Net MVC 4添加到Asp.Net Webforms 4.5 Web应用程序中:

http://www.hanselman.com/blog/IntegratingASPNETMVC3IntoExistingUpgradedASPNET4WebFormsApplications.aspx

不同之处在于文章介绍了如何将Asp.Net MVC 3添加到Asp.Net Webforms 4.0应用程序中。

要使应用程序构建,我还必须添加以下nuget包:

  • Microsoft.AspNet.Web.Optimization
  • Microsoft.AspNet.WebApi.WebHost
  • Microsoft.AspNet.WebPages

这些包具有任何依赖性。 (我认为这些是由于asp.net mvc 4模板中的一些新东西所需要的,例如捆绑和Web Api。)

运行应用程序时,我可以访问我的webforms default.aspx页面。但是当试图访问mvc route / Home / Index /时,我得到以下黄色死亡屏幕:

  

编译错误

     

描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。

     

编译器错误消息:CS0103:当前上下文中不存在名称“BeginContext”

     

来源错误:

     

第50行:#line默认   第51行:#line隐藏   第52行:BeginContext(“〜/ Views / Home / Index.cshtml”,39,2,true);   第53行:   第54行:WriteLiteral(“\ r \ n”);

     

源文件:c:\ Users \ deap \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ root \ 4e75f435 \ a63aa726 \ App_Web_index.cshtml.a8d08dba.m4g9z3sv.0.cs Line:52

有没有人知道发生了什么以及我需要做些什么来让它运行?

1 个答案:

答案 0 :(得分:0)

经过一夜安眠后,我决定将我的web.config与我复制文件夹的虚拟mvc web应用程序进行比较。

更改以下内容:

<dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

成:

<dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

解决了我的问题。