日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET MVC 5 学习教程:控制器传递数据给视图

發(fā)布時間:2023/12/13 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET MVC 5 学习教程:控制器传递数据给视图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

起飛網(wǎng) ASP.NET MVC 5 學(xué)習(xí)教程目錄:

  • 添加控制器
  • 添加視圖
  • 修改視圖和布局頁
  • 控制器傳遞數(shù)據(jù)給視圖
  • 添加模型
  • 創(chuàng)建連接字符串
  • 通過控制器訪問模型的數(shù)據(jù)
  • 生成的代碼詳解
  • 使用 SQL Server LocalDB
  • Edit方法和Edit視圖詳解
  • 添加查詢
  • Entity Framework 數(shù)據(jù)遷移之添加字段
  • 添加驗證
  • Details 和 Delete 方法詳解

在討論數(shù)據(jù)庫和模型之前,讓我們先說說容控制器傳遞數(shù)據(jù)給視圖。控制器類在響應(yīng)傳入的請求時被調(diào)用,控制器類是你寫代碼處理瀏覽器請求、從數(shù)據(jù)庫中檢索數(shù)據(jù)、并最終決定發(fā)送什么類型的響應(yīng)給瀏覽器。視圖模板被控制器用來生成和格式化HTML響應(yīng)給瀏覽器。

控制器的責(zé)任是為視圖模板提供必須的數(shù)據(jù)或?qū)ο?#xff0c;用來繪制HTML響應(yīng)瀏覽器。一個最佳實踐是:視圖模板從來不參與業(yè)務(wù)邏輯,或直接與數(shù)據(jù)庫交互。相反的,視圖模板僅與控制器提供的數(shù)據(jù)一起工作。保持這種“關(guān)注點分離(separation of concerns)”有助于保持代碼的整潔,可測試性和更容易維護。

目前,HelloWorldController 類中的 Welcome 方法需要兩個參數(shù):name 和 numTimes,然后直接與將值輸出給瀏覽器。讓我們修改控制器,使用視圖來替換直接相應(yīng)string字符串。視圖模板會生成一個動態(tài)響應(yīng),這意味著你需要通過控制器傳遞一些數(shù)據(jù)用來生成響應(yīng)。要做到這些,你需要通過在控制器中將數(shù)據(jù)(參數(shù))放到ViewBag對象中,視圖可以訪問ViewBag對象。

回到 HelloWorldController.cs? 文件中,修改Welcome方法,在ViewBag對象中添加一個Message和NumTimes值。ViewBag是dynamic 類型的對象,你可以為它添加任何你想要的數(shù)據(jù),ViewBag對象在你添加數(shù)據(jù)之前,不具有任何屬性。ASP.NET MVC 模型綁定系統(tǒng)從地址參數(shù)中自動映射命名的參數(shù)(name 和 numTimes)到方法中。完整的HelloWorldController.cs文件如下:

代碼清單1:HelloWorldController.cs文件

using System.Web; using System.Web.Mvc;namespace MvcMovie.Controllers {public class HelloWorldController : Controller{public ActionResult Index(){return View();}public ActionResult Welcome(string name, int numTimes = 1){ViewBag.Message = "Hello " + name;ViewBag.NumTimes = numTimes;return View();}} }

現(xiàn)在ViewBag對象已經(jīng)包含了數(shù)據(jù),它會被自動傳遞給視圖。

接下來,你需要一個Welcome視圖模板。在生成菜單中,選擇生成解決方案(或使用快捷鍵 CTRL+SHIFT+B)確定項目已經(jīng)編譯了。

在Views\HelloWorld 文件夾右鍵,選擇“添加”>“支架”:

圖1:添加視圖菜單

在添加支架對話框中,選擇“MVC 5 View - Empty without model”。

圖2:添加支架對話框

在Add View對話框中,將視圖命名為Welcome

圖3:Add View對話框

文件MvcMovie\Views\HelloWorld\Welcome.cshtml? 已經(jīng)創(chuàng)建好了。

在文件Welcome.cshtml? 的<h2>元素下添加如下的代碼,完整的代碼如下:

@{ ViewBag.Title = "Welcome"; }<h2>Welcome</h2><ul>@for (int i = 0; i < ViewBag.NumTimes; i++){<li>@ViewBag.Message</li>} </ul>

運行應(yīng)用程序,在瀏覽器中查看如下地址:

http://localhost:xx/HelloWorld/Welcome?name=Scott&numtimes=4

現(xiàn)在數(shù)據(jù)從URL取出來,通過模型綁定傳遞給控制器,控制器將數(shù)據(jù)封裝在ViewBag對象中,傳遞給視圖,然后視圖將數(shù)據(jù)以HTML的方式呈現(xiàn)給用戶。

圖4:Welcome視圖

在上面的例子中,我們使用ViewBag對象將數(shù)據(jù)從控制器傳遞給視圖。在家下來的章節(jié)中,我們會使用視圖模型來傳遞數(shù)據(jù)。使用視圖模型傳遞數(shù)據(jù)比用ViewBag要好得多。

這也是模型“M”的一種,但并沒有使用數(shù)據(jù)庫。我們接下來要學(xué)習(xí)的是創(chuàng)建一個數(shù)據(jù)庫,創(chuàng)建一個真正意義的視圖模型。

本文轉(zhuǎn)自起飛網(wǎng),原文地址:http://www.qeefee.com/mvc/mvc-5-passing-data-from-the-controller-to-the-view

轉(zhuǎn)載于:https://www.cnblogs.com/youring2/p/mvc-5-passing-data-from-the-controller-to-the-view.html

總結(jié)

以上是生活随笔為你收集整理的ASP.NET MVC 5 学习教程:控制器传递数据给视图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。