没有为此对象定义无参数构造函数。在剑道网格中

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”类也必须有一个默认的构造函数。

【讨论】:

以上是关于没有为此对象定义无参数构造函数。在剑道网格中的主要内容,如果未能解决你的问题,请参考以下文章

没有为此对象定义无参数构造函数。 MVC 5

ExpressMapper / EntityFramework - 没有为此对象定义无参数构造函数

ASP.NET Core Identity UserManager<ApplicationUser> -Error 没有为此对象定义无参数构造函数

是否可以在 WCF 中没有无参数构造函数的情况下序列化对象?

c+学习记录

OOP 2.2 构造函数