如何在asp.net mvc视图中显示数据库记录

使用ASP.NET MVC和C#,如何将一些数据库记录传递给View并以表格forms显示它们?

我需要知道如何从已返回到SqlDataReader对象的数据库传输/传递一些记录行,并将该对象传递给View,这样我就可以使用foreach显示View中对象所包含的所有记录。

以下代码是我正在尝试做的事情。 但它不起作用。

控制者:

public ActionResult Students() { String connectionString = ""; String sql = "SELECT * FROM students"; SqlCommand cmd = new SqlCommand(sql, connectionString); using(SqlConnection connectionString = new SqlConnection(connectionString)) { connectionString.Open(); SqlDataReader rdr = cmd.ExecuteReader(); } ViewData.Add("students", rdr); return View(); } 

风景:

 

Student

1.首先创建一个将保存记录值的Model 例如:

 public class Student { public string FirstName {get;set;} public string LastName {get;set;} public string Class {get;set;} .... } 

2.然后将阅读器中的行加载到列表或其他内容:

 public ActionResult Students() { String connectionString = ""; String sql = "SELECT * FROM students"; SqlCommand cmd = new SqlCommand(sql, conn); var model = new List(); using(SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); SqlDataReader rdr = cmd.ExecuteReader(); while(rdr.Read()) { var student = new Student(); student.FirstName = rdr["FirstName"]; student.LastName = rdr["LastName"]; student.Class = rdr["Class"]; .... model.Add(student); } } return View(model); } 

3.最后在您的View ,声明您的模型类型:

 @model List 

Student

@foreach(var student in Model) { }
First Name Last Name Class
@student.FirstName @student.LastName @student.Class

如果您不必使用sql阅读器,那么让控制器像这样更容易。

Controller.cs

 private ConnectContext db = new ConnectContext(); public ActionResult Index() { return View(db.Tv.ToList()); } 

ConnectContext.cs

 public class ConnectContext : DbContext { public DbSet Student{ get; set; } } 

这样您的连接字符串将在您的web.config中,View + Model将保持不变。