2012-05-18 60 views
2

我收到此錯誤 - System.InvalidOperationException:列「UserID」不存在。使用MVC3 WebGrid - 列不存在錯誤

這是我的視圖模型。

public class UserVM 
{ 
    public int UserID; 
    public string Name; 
} 

這是我在控制器中的操作方法。

public ActionResult TestGrid() 
{ 
    List<UserVM> rows = new List<UserVM>(); 
    rows.Add(new UserVM { UserID = 100, Name = "Abc" }); 
    rows.Add(new UserVM { UserID = 101, Name = "Def" }); 
    rows.Add(new UserVM { UserID = 102, Name = "Ghi" }); 
    return View("TestGrid", rows.AsEnumerable()); 
} 

這是我的看法。

@model IEnumerable<Module.ViewModels.UserVM> 
@{ 
    var grid = new WebGrid(Model); 
} 

<div> 
@grid.GetHtml(
    columns: grid.Columns(
     grid.Column("UserID", header: "User ID"), 
     grid.Column("Name", header: "Name") 
    ) 
) 
</div> 

就是這樣。任何想法,爲什麼我得到錯誤?

回答

9

您的UserVM類正在使用字段而不是屬性。不會與webgrid一起使用。
這是你的類屬性:

public class UserVM 
{ 
    public int UserID { get; set; } 
    public string Name { get; set; } 
} 
+0

這一次讓我抓狂 – talles