麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

ASP.NET中MVC傳遞數據的幾種形式總結

2024-07-10 13:29:28
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了ASP.NET中MVC傳遞數據的幾種形式,以實例形式較為詳細的分析總結了MVC數據傳遞的相關技巧與注意事項,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了ASP.NET中MVC傳遞數據的幾種形式。分享給大家供大家參考。具體如下:

在Asp.net mvc開發中,Controller需要向View提供Model,然后View將此Model渲染成HTML。這篇文章介紹三種由Controller向View傳遞數據的方式,實現一個DropDownList的顯示。

第一種:ViewData

ViewData是一個Dictionary。使用非常簡單,看下面代碼:

 

 
  1. public ActionResult ViewDataWay(int id) 
  2. Book book =bookRepository.GetBook(id); 
  3. ViewData["Countries"] = new SelectList(PhoneValidator.Countries, book.Country); 
  4. return View(book); 

在View中使用下面代碼取值:

 

 
  1. <div class="editor-field"
  2. <%= Html.DropDownList("Country", ViewData["Countries"] as SelectList) %> 
  3. <%: Html.ValidationMessageFor(model => model.Country) %> 
  4. </div> 

上面代碼使用as將它轉換成SelectList。

處理POST代碼如下:

 

 
  1. [HttpPost] 
  2. public ActionResult ViewDataWay(int id, FormCollection collection) 
  3. Book book = bookRepository.GetBook(id); 
  4. UpdateModel<Book>(book); 
  5. bookRepository.Save(book); 
  6. return RedirectToAction("Details"new { id=id}); 

第二種:ViewModel

使用ViewModel的方式,我們先創建一個BookViewModel,代碼如下:

 

 
  1. public class BookViewModel  
  2. {  
  3. public Book Book  
  4. {  
  5. get;  
  6. set;  
  7. }  
  8. public SelectList Countries 
  9. get; 
  10. set; 
  11. public BookViewModel(Book book) 
  12. Book = book; 
  13. Countries = new SelectList(PhoneValidator.Countries,book.Country); 

在控制器的Aciton使用ViewModel存放數據的代碼如下:

 

 
  1. public ActionResult ViewModelWay(int id) 
  2. Book book = bookRepository.GetBook(id); 
  3. return View(new BookViewModel(book)); 

在View中,這種方式比第一種方式好在:它支持智能感應。

效果和第一種方式一樣。

第三種:TempData

使用TempData和使用ViewData方法是一樣的。

Action代碼如下:

 

 
  1. public ActionResult TempDataWay(int id) 
  2. Book book = bookRepository.GetBook(id); 
  3. TempData["Countries"] = new SelectList(PhoneValidator.Countries, book.Country); 
  4. return View(book); 

View取值的代碼如下:

 

 
  1. <div class="editor-field"
  2. <%= Html.DropDownList("Country", TempData["Countries"] as SelectList) %> 
  3. <%: Html.ValidationMessageFor(model => model.Country) %> 
  4. </div> 

效果:第一種方式一樣。

TempData和ViewData的區別

做個簡單的測試看下看下TempData和ViewData的區別

 

 
  1. public ActionResult Test1()  
  2. {  
  3. TempData["text"] = "1-2-3";  
  4. ViewData["text"] = "1-2-3";  
  5. return RedirectToAction("Test2");  
  6. public ActionResult Test2() 
  7. string text1 = TempData["text"] as string; 
  8. string text2 = ViewData["text"] as string; 
  9. return View(); 

RedirectToAction跳轉Action后,ViewData的值已經被清空,而TempData沒有被清空,這是它們的區別之一。

希望本文所述對大家的asp.net程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 激情亚洲一区二区三区 | 91福利免费观看 | 一区www| 在线免费观看日韩视频 | 国产成人自拍视频在线观看 | 日韩精品一区二 | 精品久久一区二区三区 | 九九视频在线观看6 | 亚洲va久久久噜噜噜久牛牛影视 | 操碰网 | 欧美日韩爱爱视频 | 高颜值美女啪啪 | xxxxhd73国产 | 欧美一区中文字幕 | 亚洲第一成av人网站懂色 | 亚州综合一区 | 亚洲一区二区三区高清 | 欧美一级特黄特色大片免费 | 久久综合一区二区 | 九色p| 免费黄色欧美视频 | 久久第四色 | 国产免费观看一区二区三区 | 91精品国产手机 | 欧美视频一级 | 亚洲草逼视频 | 在线中文字幕不卡 | 亚洲骚妻| 久久久久久久久日本理论电影 | 精品国产99久久久久久宅男i | 黄色网址进入 | 国产精品999在线 | 国产999精品久久久久 | 激情综合婷婷久久 | 91情侣偷在线精品国产 | 欧美成人影院 | 国产精品自拍片 | 欧美一级α | 精品一区在线视频 | 看国产毛片 | www国产成人免费观看视频,深夜成人网 |