用滑鼠右鍵單擊Controller檔案夾,并建立一個新的 <code>MoviesController</code>控制器。當Build成功後,會出現下面的選項。設定以下選項:
· 控制器名稱: MoviesController.(這是預設值)。
· 模闆: MVC Controller with read/write actions and views, using Entity Framework.
· 模型類:Movie (MvcMovie.Models).
· 資料上下文類: MovieDBContext (MvcMovie.Models).
· 意見:Razor (CSHTML).(預設值)。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872532yA4r.png"></a>
單擊添加。Visual Studio Express 會建立以下檔案和檔案夾:
· 項目控制器檔案夾中的MoviesController.cs檔案。
· 項目視圖檔案夾下的 Movie檔案夾。
· 在新的Views\Movies檔案夾中建立Create.cshtml、 Delete.cshtml、 Details.cshtml、 Edit.cshtml和Index.cshtml 檔案。
ASP.NET MVC 4 自動建立 CRUD (建立、 讀取、 更新和删除) 操作方法,和相關的視圖檔案(CRUD 自動建立的操作方法和視圖檔案被稱為基礎結構檔案)。現在您有了可以建立,清單、 編輯和删電影Entity 所有的Web功能了。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872533rPYk.png"></a>
點選Create New連結。輸入有關電影的一些詳細資訊,然後單擊Create按鈕。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872534Qnqg.png"></a>
單擊Create按鈕将使得窗體送出至伺服器,同時電影資訊也會儲存到資料庫裡,然後您會被重定向到URL/Movies,您可以在清單中看到您剛剛建立的新電影。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_13578725357ySA.png"></a>
建立一些更多的電影資料。同時也可以嘗試點選編輯、詳細資訊和删除功能的連結。
打開Controllers\MoviesController.cs檔案,并找到生成的<code>Index</code>方法。一本部分電影控制器和<code>Index</code>方法如下所示。
<a href="http://blog.51cto.com/powertoolsteam/1114401#">?</a>
下面是<code>MoviesController</code>類中執行個體化電影資料庫上下文執行個體,如前面所述。電影資料庫上下文執行個體可用于查詢、 編輯和删除的電影。
向<code>Movies</code>控制器請求,進而傳回<code>Movies</code>電影資料庫表中的所有記錄,然後将結果傳遞給<code>Index</code>視圖。
在本系列之前的教程中,您看到了使用<code>ViewBag</code>對象,從控制器傳遞資料或對象給視圖模闆。<code>ViewBag</code>是一個動态的對象,提供了友善的後期綁定方法将資訊傳遞給視圖。
ASP.NET MVC 還提供了傳遞強類型資料或對象到視圖模闆的能力。這種強類型使得更好的在編譯時檢查您的代碼并在Visual Studio 編輯器中提供更加豐富的智能感覺。當建立操作方法和視圖時, Visual Studio 中的基礎結構機制使用了<code>MoviesController</code>類和視圖模闆。
在Controllers\MoviesController.cs檔案中看一下生成的<code>Details</code>方法。電影控制器裡的<code>Details</code>方法如下所示。
如果查找到了一個<code>Movie</code>,<code>Movie</code> 模型的執行個體會傳遞給Detail視圖。看一下Views\Movies\Details.cshtml檔案裡的内容。
通過引入視圖模闆檔案頂部的<code>@model</code>語句,您可以指定該視圖期望的對象類型。當您建立電影控制器時,Visual Studio 會将<code>@model</code>聲明自動包含到Details.cshtml檔案的頂部:
此代碼在控制器中傳遞<code>Movies</code>清單給視圖:
當您建立電影控制器時,Visual Studio Express會自動包含 <code>@model</code>語句到Index.cshtml檔案的頂部:
此<code>@model</code>聲明使得控制器可以将強類型的電影清單<code>Model</code>對象傳遞給View視圖。例如,在Index.cshtml模闆中,在強類型的<code>Model</code>對象上使用<code>foreach</code>語句循環周遊電影清單:
因為<code>Model</code>對象是強類型的 (是<code>IEnumerable<Movie></code>對象),是以在循環中的每個<code>item</code>對象的類型是<code>Movie</code>類型。好處之一是,這意味着您可以在代碼編譯時進行檢查,同時在代碼編輯器中支援更加全面的智能感覺:
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872536XbOG.png"></a>
Entity Framework Code First代碼優先,如果檢測到不存在一個資料庫連接配接字元串指向了<code>Movies</code>資料庫,會自動的建立資料庫。在App_Data檔案夾中找一下,您可以驗證它已經被建立了。如果您看不到Movies.mdf檔案,請在解決方案資料總管工具欄上,單擊顯示所有檔案按鈕,單擊重新整理按鈕,然後展開App_Data檔案夾。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872536r0eb.png"></a>
輕按兩下Movies.mdf打開資料庫資料總管,然後展開表檔案夾以檢視電影表。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872537Czo4.png"></a>
注: 如果沒有顯示資料庫資料總管,可以從工具菜單中,選擇連接配接到資料庫,然後關閉選擇資料源對話框。這樣将強制打開資料庫資料總管。
注: 如果您使用的 VWD 或 Visual Studio 2010 可能會看到類似下面的錯誤資訊:
· 因為資料庫 ' C:\Webs\MVC4\MVCMOVIE\MVCMOVIE\APP_DATA\MOVIES.MDF ' 是 706 版本的,是以無法打開。本伺服器支援 655 和更早版本的資料庫。無法降級支援。
· "InvalidOperation Exception was unhandled by user code" 所提供的 SqlConnection 沒有指定初始資料庫。
右鍵單擊<code>Movies</code>表并選擇顯示表資料以檢視您所建立的資料。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872537QhVW.png"></a>
右鍵單擊<code>Movies</code>表,選擇打開表定義檢視Entity Framework代碼優先所建立表的表結構。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872538UftU.png"></a>
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_1357872539sLu7.png"></a>
請注意,如何将<code>Movies</code>表的表結構映射到您早些時候所建立的<code>Movie</code>類?Entity Framework 代碼優先為您自動建立了基于<code>Movie</code>類的表結構。
當您完成操作後,通過右鍵單擊MovieDBContext ,選擇關閉連接配接關閉該資料庫連接配接。(如果您沒有關閉連接配接,當您下次運作該項目時,可能會出現錯誤)。
<a href="http://powertoolsteam.blog.51cto.com/attachment/201301/11/2369428_13578725397aX6.png"></a>
現在,您可以在簡單清單頁面裡,來顯示資料庫裡的資料了。在下一次的教程中,我們會繼續看看架構自動生成的其它代碼。并添加一個<code>SearchIndex</code>方法和<code>SearchIndex</code>視圖,使您可以在資料庫中搜尋電影了。
本文轉自 powertoolsteam 51CTO部落格,原文連結:http://blog.51cto.com/powertoolsteam/1114401,如需轉載請自行聯系原作者