今天試着用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
聲明:本博客原創文字只代表本人工作中在某一時間內總結的觀點或結論,與本人所在單位沒有直接利益關系。非商業,未授權,貼子請以現狀保留,轉載時必須保留此段聲明,且在文章頁面明顯位置給出原文連接。
如果大家感覺我的博文對大家有幫助,請推薦支持一把,給我寫作的動力。