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     }效果:
