微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试分配默认列值时,为什么在 kendoGrid 上无法将“SomeViewModel”类型的对象转换为“System.String”类型错误?

如何解决尝试分配默认列值时,为什么在 kendoGrid 上无法将“SomeViewModel”类型的对象转换为“System.String”类型错误?

使用 Telerik KendoGrid 和以下示例,我的 Grid 接受 Someviewmodel 的模型。

public class Someviewmodel{
    public int Id { get; set; }
    public int StateId { get; set; }
    public DateTime EffectiveDate { get; set; }
    public string ProductFamily { get; set; }
}

我正在为 ProductFamily 使用 EditorTemplate,它是一个带有 KendoDropDownList 的局部视图。

所有这些都按预期工作,没有问题。唯一需要担心的是在网格中创建新记录。由于它的新记录 ProductFamily 只是空白 b/c 部分视图的 DropDownList 不会激活,直到您单击空白字段以分配值。所以我想在 Field 上设置一个 DefaultValue,基于 Telerik 示例进行设置 -

@(Html.Kendo().Grid<Someviewmodel>()
    .Name("Grid")
    .DataSource(dataSource => dataSource
    .Ajax()
    .Model(model =>
    {
       model.Id(p => p.Id);
       model.Field(i => i.Id).Editable(false);
       model.Field(i => i.StateId).Editable(false);
       model.Field(i => i.EffectiveDate).Editable(true);
       model.Field(i => i.ProductFamily).Editable(true).Default(viewmodel["defaultFamily"] as Someviewmodel);
    })
))

我为 viewmodel 创建的认值是:

var defaultValue = new Someviewmodel() { ProductFamily = "Food" };
viewmodel["defaultFamily"] = defaultValue;

问题是这总是抛出错误“Someviewmodel”类型的对象无法转换为“System.String”类型

嗯.. 看起来好像它想要一个字符串。因此,为了解决这个问题,我在 viewmodel 中分配了一个明确的值来提供它看似想要的东西 -

var defaultValue = new Someviewmodel() { ProductFamily = "Food" };
viewmodel["defaultFamily"] = defaultValue.ProductFamily;

但后来我收到此错误传递给字典的模型项的类型为“System.String”,但此字典需要类型为“Someviewmodel”的模型项。

我不确定我在这里做错了什么,但此时我陷入了 Catch-22 场景。

错误的实际含义是什么?如何解决

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?