Javascript 未捕获引用错误:创建新记录时未在剑道网格中定义CustomerContract

Javascript 未捕获引用错误:创建新记录时未在剑道网格中定义CustomerContract,javascript,asp.net-mvc,kendo-ui,kendo-grid,kendo-asp.net-mvc,Javascript,Asp.net Mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我正在从事一个asp.NETMVC项目,在这个项目中,我使用一个填充了模型的网格。但是,我在尝试在网格中创建新记录时遇到一个错误,即uncaughtreferenceerror:CustomerContract未定义 以下是我的表格和模板: <script type="text/kendo" id="customerTemplate"> #if(data != null){# #:data.Name# #}# </script> <scri

我正在从事一个asp.NETMVC项目,在这个项目中,我使用一个填充了模型的网格。但是,我在尝试在网格中创建新记录时遇到一个错误,即
uncaughtreferenceerror:CustomerContract未定义

以下是我的表格和模板:

<script type="text/kendo" id="customerTemplate">
    #if(data != null){#
    #:data.Name#
    #}#
</script>

<script type="text/javascript">
    var customerTemplate = kendo.template($("#customerTemplate").html(), { useWithBlock: false });
</script>

@(Html.Kendo().Grid<ProjectModel>()
      .Name("grid")
      .Columns(columns =>
      {
          columns.Bound(p => p.Name);
          columns.Bound(p => p.CustomerContract).ClientTemplate("#:customerTemplate(CustomerContract)#");
          columns.Command(command =>
          {
              command.Edit();
              command.Destroy();
          }).Width(180);
      })
      .ToolBar(toolbar => toolbar.Create())
      .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("ProjectPopUpTemplate"))
      .Pageable()
      .Sortable()
      .Scrollable()
      .HtmlAttributes(new {style = "height:500px;"})
      .DataSource(dataSource => dataSource
          .Ajax()
          .PageSize(10)
          .Events(events => events.Error("error_handler"))
          .Model(model => { model.Id(p => p.Id); })
          .Create(update => update.Action("EditingPopup_Create", "ProjectManagement"))
          .Read(read => read.Action("EditingPopup_Read", "ProjectManagement"))
          .Update(update => update.Action("EditingPopup_Update", "ProjectManagement"))
          .Destroy(destroy => destroy.Action("EditingPopup_Destroy", "ProjectManagement"))
      )
)
其中项目合同包含客户合同作为属性

型号:

public class ProjectModel
    {
        private ProjectContract _projectContract;

        public ProjectModel(ProjectContract projectContract)
        {
            ProjectContract = projectContract;
        }

        public ProjectModel()
        {

        }

        public CustomerServiceClient CustomerService { get; set; }

        private ProjectContract ProjectContract
        {
            get
            {
                if (_projectContract == null)
                {
                    _projectContract = new ProjectContract();
                }

                return _projectContract;
            }
            set { _projectContract = value; }
        }

        [Display(Name = "Customer")]
        public CustomerContract CustomerContract
        {
            get
            {
                if (ProjectContract.CustomerContract == null)
                {
                    return new CustomerContract();
                }

                return ProjectContract.CustomerContract;
            }
            set { ProjectContract.CustomerContract = value; }
        }

        [Display(Name = "Customers")]
        public List<Customer> Customers { get; set; }

        [ScaffoldColumn(false)]
        public int Id
        {
            get { return ProjectContract.Id; }
            set { ProjectContract.Id = value; }
        }

        [Display(Name = "Project Name")]
        public string Name
        {
            get { return ProjectContract.Name; }
            set { ProjectContract.Name = value; }
        }
    }
公共类项目模型
{
私人项目合同(ProjectContract);;
公共项目模型(项目合同)
{
项目合同=项目合同;
}
公共项目模型()
{
}
公共CustomerService客户端CustomerService{get;set;}
私人工程合约
{
得到
{
如果(_projectContract==null)
{
_projectContract=新的projectContract();
}
返回项目合同;
}
设置{u projectContract=value;}
}
[显示(Name=“客户”)]
公共客户合同客户合同
{
得到
{
if(ProjectContract.CustomerContract==null)
{
返回新的CustomerContract();
}
返回项目合同。客户合同;
}
设置{ProjectContract.CustomerContract=value;}
}
[显示(Name=“客户”)]
公共列表客户{get;set;}
[脚手架立柱(假)]
公共整数Id
{
获取{return ProjectContract.Id;}
设置{ProjectContract.Id=value;}
}
[显示(Name=“项目名称”)]
公共字符串名
{
获取{return ProjectContract.Name;}
设置{ProjectContract.Name=value;}
}
}

我希望有人能给我指出正确的方向,告诉我这里发生了什么,为什么我不能创造新的记录

在网格的模型部分。为新客户合同添加一个字段,并初始化新客户合同,如下所示:

Model(model => {
    model.Id(p => p.id);
    model.Field(p => p.CustomerContract).default(new CustomerContract());
}
这会解决你的问题


如果你需要一个更完整的例子,我可以在电脑上做一个。

最后。我怎么会错过呢DGlad这对你有用。当我开始使用网格时,我遇到了类似的问题。
Model(model => {
    model.Id(p => p.id);
    model.Field(p => p.CustomerContract).default(new CustomerContract());
}