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
相关产品推荐
相关产品推荐

