You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KendoUI MVC Grid新增记录时下拉框抛出ReferenceError错误求助

问题分析与解决方案

这个错误的核心原因很明确:当你点击新增按钮创建空白记录时,Grid绑定的ConfigViewModel实例里的Application属性是null,而你在列的ClientTemplate中直接写了#=Application.Name#,KendoUI在渲染模板时找不到Application这个对象,就抛出了Uncaught ReferenceError: Application is not defined的错误。

除此之外,你的下拉框编辑器还有一个配置问题,也会导致后续赋值异常,一起来解决:

1. 修复ClientTemplate的空值判断

修改列配置的ClientTemplate,添加空值校验,当Application为null时显示空字符串,避免报错:

columns.Bound(c => c.Application)
       .ClientTemplate("#= Application ? Application.Name : '' #")
       .EditorTemplateName("ApplicationDropDownEditor");

2. 修正下拉框编辑器的Name属性

你的下拉框编辑器里.Name("Type")是错误的,因为你绑定的是ConfigViewModel中的Application对象,下拉框需要对应到该对象的Id属性,这样选中的值才能正确赋值到模型里。修改编辑器代码:

@model Configuration.Web.Models.ApplicationViewModel
@( Html.Kendo().DropDownList()
    .Name("Application.Id") // 改为对应模型的属性路径
    .DataTextField("Name")
    .DataValueField("Id")
    .DataSource(source => {
        source.Read(read => {
            read.Action("GetApplications", "Application");
        } );
    })
)

额外说明

新增记录时,Application属性默认是null,这是正常的,修改后的ClientTemplate会处理这种情况,不会再抛出错误;同时修正后的下拉框名称能确保选中的选项值正确绑定到Application.Id(也可根据后端接收逻辑调整为ApplicationId),保证新增/编辑时的赋值正常。

内容的提问来源于stack exchange,提问作者DarthVader

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:49:03