Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET MVC2中Controller向View传递数据的三种方式

ASP.NET MVC2中Controller向View传递数据的三种方式2011-08-28 博客园 朱祁林在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 }

效果: