2016-05-11 60 views
6

在Razor中編寫代碼時,智能感知下拉框不起作用。它會打開,然後在不到一秒鐘後關閉。當有以下括號時,MVC/Razor - 智能感知彈出窗口關閉

當我正在寫一個類或類似的東西時,這種情況不會發生在我的視圖上。

爲了解釋爲I型

  • @Html會發生什麼。
    1. 智能感知框打開並保持打開狀態。
  • @ Html.DisplayFor(p值=> M)//的閉括號自動由VS
    1. 寫入的框打開在顯示具有M開始可能的輸入,但立即關閉。
  • @ Html.DisplayFor(p值=>模型。)
    1. 盒子打開並顯示與模型相關聯的屬性,但隨後立即關閉。

然而,如果我添加一個空間:

  • @ Html.DisplayFor(p值=> M)
    1. 盒保持打開。
  • @ Html.DisplayFor(p值=>模型。)
    1. 盒保持打開。

有沒有設置或東西是這樣對我?

通過關閉和重新打開VS以及重建項目,此問題依然存在。

使用Visual Studio 2015 Professional 2015更新2 在做MVC時使用Razor。 如果有可能導致此問題的設置,我也安裝了Web Essentials。

+0

當使用ctrl-space觸發彈出窗口時會發生什麼? VS可能只是在解析你的代碼,並意識到原始的彈出窗口內容是無效的。有時候部分編寫錯誤的代碼會導致整個文件不可分析,這意味着有關可用成員的所有信息都將丟失。 JetBrains Resharper在解析和自動完成方面做得更好。 – Charlie

+0

@Charlie ctrl +空格將正確打開彈出窗口並保持打開狀態。我將如何去跟蹤「部分寫入錯誤的代碼」? – hcaelxxam

+0

部分編寫的錯誤代碼非常有用。最好的例子是當你啓動一個if語句並打開大括號(可能來自一個粘貼)但不提供大括號。解析器不能找到類的結尾,所以它只是放棄,直到你得到所有大括號來匹配。您可能還有其他一些選項或插件,它們是「偷取焦點」並導致彈出窗口消失。這將很難追查到。您可以嘗試禁用所有插件,將您的設置重置爲默認等,並查看它是否消失。重新啓動計算機也可能工作。 – Charlie

回答

0

我有時非常相同的惱人的問題(VS2015),我不知道無緣無故只是一個例子:在CSHTML文件我頂......

@{ 
    Style. 
} 

當我按下「。」在風格之後,智能感知顯示出一瞬間,然後消失。

我知道這很愚蠢,但是當我添加一個返回鍵來添加行空間時 - 那麼我會再次使智能感知工作正常。

@{ 
    Style. 

} 

我知道這不是一個解決辦法,但這項工作很快就讓我再次走了。

刪除樣式後的所有空格。最多},所以它看起來像風格。}也爲我工作,所以可能會有一些特殊字符造成問題。