Controller: 在项目中的Controller文件夹下,新建一个"MVC Controller Class",命名为CustomerContoller.cs。 在此类中添加一个公有方法Index,此方法及为在Global.asax.cs中设置好的默认URL所映射的方法。
public class CustomerController : Controller { public void Index(string id) { Northwind.Models.NorthwindDataContext dc = new Northwind.Models.NorthwindDataContext(); IList<Northwind.Models.Customer> customers = dc.Customers.Take(10).ToList();//取数据库中的10个Customer记录 RenderView("Index", customers);//返回Index View } } |
View: 上面Index方法的代码表示CustomerContoller的Index方法执行后,需要返回一个名称为Index的View,以便将数据呈现给用户。下面来添加这个Index View:在项目的View文件中,新建一个子文件夹Customer。与Customer Controller有关的View将保存在此文件夹下。新建一个"MVC View Class"并命名为Index.aspx。在前面的RenderView("Index", customers)方法中,customers参数是Controller传递给View所需的数据,该参数的类型为IList<Northwind.Models.Customer>。为了在View中方便使用此强类型的数据,View.aspx.cs使用了如下代码:注意粗体部分
public partial class Index : ViewPage<IList<Northwind.Models.Customer>> { } |
View.aspx代码如下:ViewData这一成员变量的类型及为上面提到的IList<Northwind.Models.Customer>类型。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Edit.aspx.cs" Inherits="Northwind.Views.Customer.Edit" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> </head> <body> <div> <table> <tr> <td>Edit</td> <td>Customer ID </td> <td>Company Name </td> <td>Contact Name </td> <td>Contact Title </td> </tr> <% foreach (Northwind.Models.Customer customer in ViewData) {%> <tr> <td><a href="Customer.mvc/Edit/<%= customer.CustomerID %>">Edit</a></td><!—URL指向Customer Contoller的Edit方法 --> <td></td> <td> <%= customer.CustomerID %></td> <td> <%= customer.CompanyName %></td> <td> <%= customer.ContactName %></td> <td><%= customer.ContactTitle %></td> </tr> <%} %> </table> </div> </body> </html> |
&