• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何在MVC视图中显示列表?

asp.net-mvc 来源:Erik Sellberg 6次浏览

好吧,所以我看到了很多类似的问题,但不幸的是,我无法弄清楚如何在视图中访问数据库中的用户列表。我得到一个System.NullReferenceException。你们中的一位专家能看到我做错了什么吗?如何在MVC视图中显示列表?

型号

public class MyModel 
{ 
    [Key] 
    public int Id { get; set; } 
    [Display(Name = "Name")] 
    public string Name { get; set; } 
    public bool TriggerOnLoad { get; set; } 
    public string TriggerOnLoadMessage { get; set; } 
    public string EmployeeNumber { get; set; } 
    public IEnumerable<User> Users { get; set; } 

    public List<MyModel> GetAllUsers() 
    { 
     var queryString = "SELECT Name FROM Users"; 
     var adapter = new SqlDataAdapter(queryString, System.Configuration.ConfigurationManager.ConnectionStrings["SQLConn"].ConnectionString); 
     var current = new DataSet(); 
     adapter.Fill(current, "Name"); 

     return (from DataRow item in current.Tables[0].Rows 
       select new MyModel() 
       { 
        Name = Convert.ToString(item["Name"]), 
       }).ToList(); 

    } 

控制器

public ActionResult GetUser() 
{ 
    var model = new MyModel(); 
    _db.GetAllUsers(); 
    return View(model); 
} 

查看

@model ModelName.Models.MyModel 

--HTMLCode-- 

@foreach (var item in Model.Users) <-- Exception. 
{ 
    <tr> 
     <td>@Html.DisplayFor(modelItem => item.Name)</td> 
    </tr> 
} 

什么我忘了?


===========解决方案如下:

传这样的用户。你是不是传递用户查看

public ActionResult GetUser() 
{ 
    var model = new MyModel(); 
    var users = _db.GetAllUsers(); 
    return View(users); 
} 

然后在视图

@model List<MyModel> 
@foreach (var item in Model) //foreach through the list 
{ 
    <tr> 
     <td>@Html.DisplayFor(model => item.Name)</td> 
    </tr> 
} 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)