gpt4 book ai didi

asp.net - ObjectDataSource 没有要插入的值

转载 作者:行者123 更新时间:2023-12-05 09:25:09 25 4
gpt4 key购买 nike

我正在使用 ObjectDataSource 来执行 CRUD 操作。出于某种原因,我收到“ObjectDataSource‘ObjectDataSource1’没有要插入的值。检查‘values’字典是否包含值。”

有什么建议吗?

我知道这个控件继承自 ObjectDataSource 控件。根据文档http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.insertmethod.aspx

如果设置了 DataObjectTypeName 属性,则该方法将以不同的方式解析。 ObjectDataSource 查找具有在 InsertMethod 属性中指定的名称的方法,该方法采用一个在 DataObjectTypeName 属性中指定的类型的参数。

这就是我的 ObjectDataSource 控件的设置方式。

<asp: ObjectDataSource ID="ObjectDataSource1" runat="server" 
DataObjectTypeName="MyApplication.Entities.Domain.MyObject" ConflictDetection="CompareAllValues"
OldValuesParameterFormatString="original{0}" SelectMethod="GetUserDisplays"
InsertMethod="CreateMyObject" UpdateMethod="UpdateMyObject" DeleteMethod="DeleteDisplay">
</asp:ObjectDataSource>

我在 InsertMethod 上设置了一个断点,但是当我尝试保存我的表单时应用程序甚至没有命中它。我怀疑由于某种原因没有正确实例化 DataObjectType。

我正在尝试在 ASPxGridview 控件的 EditForm 中执行插入操作,而 DataObjectType 是一个 EF POCO,其中有一些附加属性(标记为虚拟)以从 ObjectContext 加载相关实体。我认为这可能是问题所在,但不知道如何解决(已到处查看!!!)。

如有任何帮助,我们将不胜感激!

最佳答案

虽然我无法确定为什么 DataObjectType 没有被自动实例化,但我意识到在调用 ObjectDataSource 上的 InsertMethod 之前需要添加一个输入参数。为此,我需要在 Inserting 事件中添加输入参数(无论如何在我的场景中)。多亏了 StackOverflow 上的另一篇帖子,我才知道我需要从 ObjectDataSource 中删除“DataObjectTypeName”属性才能触发 Inserting 事件。

关于asp.net - ObjectDataSource 没有要插入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6312058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com