ASP.NET MVC 4 開發指南 實踐的那些坑們

fairjm發表於2015-11-08

哎。。。我感覺我是不是命中就旺bug啊。。。跟著書一路做下去 遇到的bug超級多。。。

書的第三部分是實戰 我還沒做完 但遇到了不少書上那樣做過不去的地方。。這裡稍微整理一下。。因為我還沒做完 所以可能會有新的bug也說不定

書上用的是VS2012 我用的是VS2015社群版 生成的空專案和書上的也有出入了。。。


首先 生成空的MVC專案是這樣的: enter image description here 選MVC是帶有腳手架的。。。所以 不要選
因為書上專案是從零開始的 選了帶腳手架的Db啊什麼的都已經有了 會帶來不少麻煩。。。


View裡遇到詭異的DisplayNameFor DisplayFor報錯

The type 'Expression<>' is defined in an assembly that is not referenced.You must add a reference to assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.  

這個錯居然不影響build
爆棧網上: http://stackoverflow.com/questions/31086850/the-type-expression-is-defined-in-an-assembly-that-is-not-referenced

解決方法很簡單,在最外面那個Web.config(View裡也帶了一個)裡補上這個內容: enter image description here


增加 @Scripts.Render提示找不到Scripts
這個很坑。。因為書上完全沒提Optimization那個依賴....但是空專案預設是沒有那個依賴的。。。
可能是因為VS版本不同吧...
解決方法很簡單 http://www.cnblogs.com/qixue/p/3635239.html
nuget安裝一下這個依賴

Install-Package Microsoft.AspNet.Web.Optimization  

然後在view目錄下的web.config中增加這個
enter image description here
然後就可以用了...


關於Entity Framework
這個在作者用的VS中和VS2015中差異比較大
在第二章說的自動更新的方法已經不能用了... 而且空專案裡是沒有EF的!! 你就算引入System.Data.Entity 也找不到DbSetDbContext!!!!!
正確的做法是先用nuget安裝EF

Install-Package EntityFramework  

安裝好之後

Enable-Migrations  

啟用遷移

Add-Migration init  // init是說明 就當作commit裡的資訊來用好了

第一次初始化的

Update-Database  

應用到資料庫

然後每一次,哦,對了 Update後面可以加版本 可以滾來滾去(版本就是init 你指定的名字)
每次修改Model要應用到資料庫的話都要先Add 再Update 當然也是有auto的方法的 不過和書上的不一樣 書上的已經用不了了。。。

順便說一下 按照書上寫連線字串的話 好像預設的localdb不是書上的名字了 所以可能會連線不了(資料庫沒有被建立) 比如我的 我後來改了下連線字串:

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\ShoppingDB;AttachDbFilename=|DataDirectory|\aspnet-MvcShopping-20151108051917.mdf;Initial Catalog=aspnet-MvcShoppin-20151108051917;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>  

ShoppingDB是不存在的,所以要預先建立
sqllocaldb就可以了

sqllocaldb create ShoppingDB  

這樣就建好了 順便一提 localdb的檔案路徑在: C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances

哎...真的感覺自己挺慘的。。
每次看書,按書上說的做,都是一片慘紅,都要開啟瀏覽器去找解決方式。。。。
順便一提bing的in english搜尋感覺和用谷歌差不多。。在用bing的時候推薦點一下看那個的結果。。。。

哎。。。

相關文章