ASP.NET MVC2中Controller向View传递数据的三种方式2011-08-28 博客园 朱祁林在Asp.net mvc开发中,Controller需要向View提供Model,然后View将此 Model渲染成HTML。这篇文章介绍三种由Controller向View传递数据的方式,实现 一个DropDownList的显示。第一种:ViewDataViewData是一个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 }效果: