我收到此错误-System.InvalidOperationException:列“ UserID”不存在。

这是我的视图模型。

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>


而已。知道为什么我会收到错误消息吗?

最佳答案

您的UserVM类使用的是字段而不是属性。不适用于webgrid。
这是您的带有属性的课程:

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

关于asp.net-mvc-3 - 使用MVC3 WebGrid-列不存在错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10658089/

10-08 23:13