没有为此对象定义无参数构造函数。在剑道网格中
Posted
技术标签:
【中文标题】没有为此对象定义无参数构造函数。在剑道网格中【英文标题】:No parameterless constructor defined for this object. in kendo grid 【发布时间】:2012-12-11 19:06:01 【问题描述】:我正在我的一个页面上使用 Kendo UI 网格。
我想使用会员对象在网格中显示所有用户。
@model IEnumerable<MembershipUser>
@(html.Kendo().Grid(Model)
.Name("Gridusers")
.Columns(columns =>
columns.Bound(o => o.UserName).Width(100);
)
.Sortable()
.Filterable(filtering => filtering.Enabled(true)))
当我从控制器获取用户列表后进入此页面时,出现错误
“没有为此对象定义无参数构造函数。”
当我使用旧的 Telerik MVC 网格但不使用 Kendo UI 网格时,它工作正常。
谁能帮帮我?
【问题讨论】:
【参考方案1】:Kendo UI 网格需要绑定模型具有无参数构造函数,因为它实例化了它的一个实例。在您的情况下,您可以向 MembershipUser
类添加一个空构造函数:
public class MembershipUser
public MembershipUser()
/* other methods */
【讨论】:
感谢 Atanas Korchev,但我正在使用 System.Web.Security,不想为此创建子类。 查看我的回复。你的模型需要有一个无参数的构造函数。 我无法在 MembershipUser 类中创建构造函数,因为默认情况下它由于 System.Web.Security 而被锁定。我正在使用 MVC4 asp.net。 我会重复一遍。 Kendo UI 网格需要一个无参数的构造函数。如果您的班级没有,您将无法使用它。就这么简单。【参考方案2】:还应该清楚 Telerik 将构造绑定类的实例以及类成员。例如,如果您的网格绑定到 Dogs ...
public class Dog
public DogKind Kind get; set;
public Dog()
那么你的“DogKind”类也必须有一个默认的构造函数。
【讨论】:
以上是关于没有为此对象定义无参数构造函数。在剑道网格中的主要内容,如果未能解决你的问题,请参考以下文章
ExpressMapper / EntityFramework - 没有为此对象定义无参数构造函数
ASP.NET Core Identity UserManager<ApplicationUser> -Error 没有为此对象定义无参数构造函数