VS 2017開發ASP.NET Core Web應用過程中發現的一個重大Bug

雲霏霏發表於2017-04-06

  今天試著用VS 2017去開發一個.net core專案,想著看看.net core的開發和MVC5開發有什麼區別,然後從中發現了一個VS2017的Bug。

  首先,我們新建專案,ASP.NET Core Web應用程式,如圖:

新建好後,我們按照習慣,在controller資料夾上面,點選滑鼠右鍵,新增控制器...,出現瞭如下介面:

 

這個對話方塊什麼意思呢?怎麼會提示新增依賴項呢?按理來說,我們直接除錯執行,專案就跑起來了!!!

先不管他,我們直接點選新增,然後稍等一會兒,等他新增依賴。完成後,出現下面這個頁面:

 

 

大概看了一下,專案中實際上 都已經配置好了,不管他我們繼續。

然後,我們再次右鍵 -> 新增控制器...,如圖:

 

 

我們輸入UserController,這次成功的新增了控制器,我們在View()上面,點選滑鼠右鍵,看到如下選單:

 

 

這個時候,我們發現,並沒有我們想要的“新增檢視...“選單,我看過一些其他人的教程,他們都是自己手動到Views目錄新增的。

好吧,那就新增吧,新增完執行了一下,結果是正確的。

這個時候,我看了一下專案預設生成的HomeContorller,發現一個問題,這裡面的View()上面點選右鍵選單,竟然有“新增檢視...”這個選單,如圖:

 

 

而且,滑鼠放到View()上面,還會顯示檢視的路徑,如圖:

 

 

但是,到我們新建的UserController裡面,什麼都沒有,這是不合理的,肯定是我們哪裡操作的不對,才會造成這樣的情況。

所以,經過一番研究,我發現一個問題,我們通過右鍵 -> 新增新項...,對話方塊中選擇如下的控制器(ASP.NET Core),建立的出來的控制器,右鍵選單會出現”新增檢視...“,如圖:

 

 

 

於是,我愉快的點選右鍵 ->新增檢視...,完成了操作,結果也正如我們所料,VS2017自動新建了目錄和cshtml檔案。

 

但是,我們回來看,控制器裡面的View()還是顯示紅色,並不像HomeController中那樣;這說明,VS2017並沒有識別我們新建的檢視。

剛好我的電腦安裝的有Resharper,我滑鼠放過去出現下面提示,如圖:

 

於是,我選擇了第一個,新增了檢視,發現,這次才是完全對了,和HomeController中一模一樣了。

沒有安裝Resharper的,大家可以通過以下方法新增檢視,

1.按照控制器新增好資料夾,這裡是Test.

2.在新建的資料夾上面,滑鼠右鍵 -> 新增新建項...,出現如下對話方塊:

 

 

輸入對應的方法名即可。

 

總結:

  從上面的操作種種跡象發現,VS2017這裡的右鍵選單是錯誤的,預設新增的都是MVC5的控制器和檢視,所以才會出現新增MVC依賴項那個對話方塊。於是我又重新新建了一個專案測試了一下,發現那個“新增MVC依賴項”的對話方塊沒有出現。

後面大家開發時,要記得用正確的方式新增控制器,至於檢視,還是要手動新增的,如果有Resharper則按下Alt +Enter鍵,回車即可。希望微軟早日修復這個Bug。

 

 作者:雲霏霏

.NET QQ交流群:243633526    安卓QQ交流群:227526925   更多型別交流群敬請期待!

 部落格地址:http://www.cnblogs.com/yunfeifei/

 Github地址:https://github.com/yunfeifei

 宣告:本部落格原創文字只代表本人工作中在某一時間內總結的觀點或結論,與本人所在單位沒有直接利益關係。非商業,未授權,貼子請以現狀保留,轉載時必須保留此段宣告,且在文章頁面明顯位置給出原文連線。

如果大家感覺我的博文對大家有幫助,請推薦支援一把,給我寫作的動力。

 

相關文章