.NET 4.0 MVC4版本,升級到.NET 4.6.1 MVC5:
1.使用nuget更新所有 與mvc相關(guān)的類庫;
2.更改~/Views/web.config(如果有Area,Area下面的web.config也要更改),更改razor版本為3.0.0;mvc版本為5.2.3;
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
這個時候項目已經(jīng)可以正常用mvc5跑起來了,但是又有一個惱人的問題,cshtml中編寫代碼時,很多擴展方法和屬性都找不到,但運行時沒有問題,
因為mvc4中,這些擴展方法放在System.Web.WebPages庫中,而到了mvc5 都放在了System.Web.Mvc庫中,所以還有一處配置需更改:web項目的web.config
<add key="webpages:Version" value="2.0.0.0" />
修改為
<add key="webpages:Version" value="3.0.0.0" />
重啟VS,搞定!
原文