2012-11-05 18 views
1

我正在將解決方案從VS2010/MVC3/.Net 4升級到VS2012/MVC4/.Net 4.5。該解決方案已經升級使用VS2012的項目遷移工具,我跟着this guide升級MVC3到4.在大多數頁面沒有突出顯示,編輯時報告錯誤

目前,剃刀給我的問題。語法高亮不會出現任何東西,但佈局頁,當我嘗試在一個視圖中移動圍繞我要麼得到的對話框:

Waiting for a background operation to complete. This dialog will close when the operation completes.

或者我得到一個錯誤,告訴我檢查Visual Studio的活動日誌(C:\用戶{用戶} \應用程序數據\漫遊\微軟\ VisualStudio的\ 11.0 \ ActivityLog.xml),這使我這個錯誤:

System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.VisualStudio.Web.HTML.Implementation.Projection.GrowingSpanTracker.EnsureNoOverlap() at Microsoft.VisualStudio.Web.HTML.Implementation.Projection.GrowingSpanTracker.EnsureTrackingPoints() at Microsoft.VisualStudio.Web.HTML.Implementation.Projection.GrowingSpanTracker.OnTextBufferChanged(Object sender, TextContentChangedEventArgs e) at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.RaiseEvent[TArgs](Object sender, EventHandler`1 eventHandlers, TArgs args)

日誌的源列說,它來自「編輯或編輯擴展「。我在這裏運行的是vanilla VS2012,除了第一方的東西(微軟網頁開發工具,NuGet軟件包管理器和用於JavaScript的Windows庫的Visual Studio擴展)之外,沒有任何擴展。

編輯:一些額外的細節。如果我創建一個新的解決方案和MVC4項目,添加一行:

@RenderSection("title", false) 

佈局,然後試圖定義在一個視圖中的部分:

@section title{Stuff} 

的那一刻,我開始打字「 「大括號內的東西我得到相同的錯誤/行爲。

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

啊,對,我的不好。感謝編輯。 – Dusda

回答

2

原來,剃刀中的任何變化使括號更加敏感。如果你已經在你的佈局限定的區間是這樣的:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title>@RenderSection("title", false) - MyApp</title> 
     <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
     <meta name="viewport" content="width=device-width" /> 
     @Styles.Render("~/Content/css") 
     @Scripts.Render("~/bundles/modernizr") 
     @RenderSection("css",false) 
    </head> 
    ... 

,然後在使用該佈局的視圖,請嘗試使用部分正是這樣(請確保您實際鍵入它,不要」牛逼複製/粘貼):

@model MyApp.Web.Models.HomeIndexModel 
@section title {Lovely Title} 

剃刀將拋出一個合適折騰的錯誤到您的Visual Studio活動日誌。突出顯示和大多數智能感知支持也無法正常工作。經過一些試驗和錯誤之後,我發現它可以正常工作,如果你基本上不會將支架放在同一條線上。所以,這樣寫:

@model MyApp.Web.Models.HomeIndexModel 
@section title { 
    Lovely Title 
} 

它會正常工作。

+0

我發現這可能是由於我安裝VS2012時缺少一點,因爲我沒有在另一臺機器上再現這個問題。如果其他人可以嘗試這個,那會很棒。 – Dusda

+0

我能夠重現這一點。如果在標題之前和之後放置空格,可以在同一行放置大括號,如下所示:'@section title {Lovely Title}' –

+0

此外,使用ViewBag可能會比頁面標題的部分更好。 '@{ViewBag.Title =「blah title」;}'和' @ ViewBag.Title' –