多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > 學習ASP .NET MVC5官方教程總結(六)通過控制器訪問模型的數據

學習ASP .NET MVC5官方教程總結(六)通過控制器訪問模型的數據

來源:程序員人生   發布時間:2015-05-04 10:15:04 閱讀次數:4092次

           學習ASP .NET MVC5官方教程總結(6)通過控制器訪問模型的數據 

        在本章中,我們將新建1個MoviesController 控制器,并編寫獲得電影數據的代碼,使用視圖模板將數據展現在閱讀器中。

        在進行下1步之前,你需要先編譯利用程序,否則在添加控制器的時候會出錯。

        在解決方法資源管理器的Controllers文件夾右鍵,選擇"添加">"新建搭建基架項"


       在添加支架對話框,選擇 包括視圖的MVC 5控制器(使用 En),然后單擊添加按鈕。

    在控制器名字輸入框中輸入 MoviesController。在模型類選擇列表中,選擇 Movie (MvcMovie.Models)。在數據上下類選擇列表中,選擇 MovieDBContext(MvcMovie.Models) 。



        在點擊添加按鈕以后vs會創建以下文件和文件夾:

        ? 在Controllers 文件夾中創建了MoviesController.cs 文件

       ? 在Views 文件夾中創建了Movies 文件夾

       ? 在ViewsMovies 文件夾中創建了Create.cshtml, Delete.cshtml, Details.cshtml, Edit.cshtml, 和 Index.cshtml  視圖文件。

        ASP.NET MVC 5 自動創建了CRUDcreate, read, update, delete)操作方法,并為他們創建好了視圖。

       你現在已有了1個具有完全功能的利用程序,你可使用它來創建、列表顯示、編輯和刪除電影了。

運行利用程序,在閱讀器中查看地址 http://localhost:xxxxx/Movies 。由于程序依賴默許的路由,所以閱讀器要求的地址分配給 MoviesController的 Index 方法。

        換句話說,閱讀器要求http://localhost:xxxxx/Movies 地址同等于要求http://localhost:xxxxx/Movies/Index 地址。閱讀器中顯示1個空的電影列表,由于我們目前還沒有添加。


選擇 Create New”鏈接,在打開的頁面中輸入1些電影信息,然后點擊Create”按鈕

        點擊Create”按鈕會將數據提交到服務器服務器將電影信息出入數據庫。再次查看/Movies 地址,在列表中就可以看到我們新添加的電影了。

        

打開文件 ControllersMoviesController,檢查生成的 Index 方法。MoviesController 的包括Index 方法的部份代碼以下:

private MovieDBContext db = new MovieDBContext(); // GET: /Movies/ public ActionResult Index() { return View(db.Movies.ToList()); }


在MovieController 類中,包括了 MovieDBContext 類的實例,你可使用它進行查詢、編輯和刪除電影。

MoviesController 的 Index 方法將返回所有數據庫中的電影數據,然后將結果傳遞給 Index 視圖。

ASP.NET MVC 一樣提供了傳遞強類型數據或對象到視圖的功能。這類強類型的方式提供了更好的編譯時檢查和更豐富的智能感知,Visual Studio 中的腳手架機制在創建 MoviesController 類和視圖的時候使用了這類方式。

檢查 ControllersMoviesController.cs 文件中的 Details 方法,下面是Detais方法的部份代碼:

public ActionResult Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Movie movie = db.Movies.Find(id); if (movie == null) { return HttpNotFound(); } return View(movie); }


id可以通過路由數據或查詢字符串的方式傳遞給控制器。

       如果找到了電影信息,1個電影的模型就會傳遞給Details視圖。檢查1下 ViewsMoviesDetails.cshtml  文件的內容。

       通過文件頂部的@model 語句,你就知道這個視圖所期望的甚么類型的對象。當你創建了電影控制器,Visual Studio 將會自動在Details.cshtml 文件頂部包括以下語句:

@model MvcMovie.Models.Movie

       @model 指令允許使用強類型 Model 對象訪問從 Controller 傳遞給 View 的電影對象(注意,此時的Model對象是 Movie 類型)。例如,在Details.cshtml  模板中,代碼將Movie的每個字段通過強類型的 Model 對象傳遞給DisplayNameFor  和 DisplayFor HTML幫助方法。Create和 Edit 方法也傳遞了1個Model給視圖,此處不再多講。

檢查 Index.cshtml 模板和 MoviesController.cs 文件的 Index 方法,程序先創建好1個電影模型的列表對象,然后將創建好的列表對象通過View方法傳遞給視圖:

public ActionResult Index() { return View(db.Movies.ToList()); }

Visual Studio 自動在 Index.cshtml  文件頂部添加了@model 語句:

@model IEnumerable<MvcMovie.Models.Movie>

       @model 指令允許使用強類型 Model 對象訪問從 Controller 傳遞給 View 的電影列表對象(注意,此時的Model對象是 IEnumerable<Movie> 類型)。例如,在Index.cshtml模板中,代碼通過foreach 語句循環強類型Model中的每一個電影對象。

@foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.Title) </td> <td> @Html.DisplayFor(modelItem => item.ReleaseDate) </td> <td> @Html.DisplayFor(modelItem => item.Genre) </td> <td> @Html.DisplayFor(modelItem => item.Price) </td> <td> @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | @Html.ActionLink("Details", "Details", new { id=item.ID }) | @Html.ActionLink("Delete", "Delete", new { id=item.ID }) </td> </tr> }


 

        由于Model對象是強類型(IEnumerable<Movie>),每一個循環中的 item 對象都是 Movie 類型的。這意味著你的代碼具有更好的編譯時檢查和完全的智能感知支持。

       Entity Framework Code First 檢查連接字符串使用的數據庫是不是存在,如果不存在,則會自動創建數據庫文件。你可在 App_Data 文件夾下查看數據庫是不是被創建(如果你沒有看到Movies.mdf 文件,點擊解決方案資源管理器工具欄上的顯示所有文件按鈕,單擊刷新按鈕,然后展開App_Data 文件夾)。

雙擊 Movies.mdf 文件,打開服務器資源管理器,然后展開 Tables 目錄查看 Movies 數據表。

        右鍵 Movies 表,選擇打開表定義,查看Entity Framework Code First為我們創建的表結構。

        右鍵 Movies 表,選擇顯示表數據查看我們創建的電影數據。

         Entity Framework Code First 根據我們Movie 類自動創建了表結構,包括字段名和數據類型。

         當我們結束查看或編輯數據庫以后,要在服務器資源管理器中關閉連接,右鍵 MovieDBContext,選擇關閉連接。(如果你不關閉連接,下1次運行程序的時候可能會出現毛病)。

    這章就講這里了,下1章我們講Edit視圖代碼。

 

 

 

 

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲肥妇 | 国产欧美日韩高清专区手机版 | 欧美图片自拍偷拍 | 性猛交xxxxx按摩欧美 | 图片区小说区校园 | 日本成人不卡视频 | 国产啊v在线观看 | 中文字幕无线精品乱码一区 | 欧美一区二区三区精品 | 美国一级淫片 | 欧美妇性猛交视频 | 一本天堂| 欧美精品videossex17 | 欧美亚洲网站 | 爱爱精品视频 | 国产 | 久而欧洲野花视频欧洲1 | 伊人精品影院一本到欧美 | 欧美性受xxxx黑人xyx | 女人天堂网在线观看2019 | 亚欧成人 | 亚洲国产精品成人综合久久久 | 99精品日韩| 日韩乱码中文字幕视频 | 欧美一级性 | 亚洲天堂精品在线 | 色吊丝在线观看国产 | 国内自拍视频在线看免费观看 | 国产日韩欧美亚洲 | 毛片大全在线 | 在线一区国产 | 国产亚洲精品久久久久久久久激情 | 日韩精品中文字幕久久 | 久久国产精品免费 | 成人a大片高清在线观看 | 国产午夜精品免费一二区 | 欧美中文一区 | 欧美男男激情videos高清不卡 | 最新国产精品亚洲二区 | 一级女人毛片人一女人 | 国产日韩欧美综合一区 | 中文一区在线观看 |