在Asp.net mvc開發中,Controller需要向View提供Model,然後View將此 Model渲染成HTML。這篇文章介紹三種由Controller向View傳遞數據的方式,實現 一個DropDownList的顯示。
第一種:ViewData
ViewData是一個Dictionary。使用非常簡單,看下面代碼:
1 public ActionResult ViewDataWay(int id)
2 {
3 Book book =bookRepository.GetBook(id);
4 ViewData["Countries"] = new SelectList (PhoneValidator.Countries, book.Country);
5 return View(book);
6 }
在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 {
4 Book book = bookRepository.GetBook(id);
5 UpdateModel<Book>(book);
6 bookRepository.Save(book);
7 return RedirectToAction("Details", new { id=id});
8 }
效果: