C# 用于在Asp.Net动态数据中编辑XElement数据类型的字段模板

C# 用于在Asp.Net动态数据中编辑XElement数据类型的字段模板,c#,asp.net,xml,dynamic-data,asp.net-dynamic-data,C#,Asp.net,Xml,Dynamic Data,Asp.net Dynamic Data,我有一个Asp.NET4.0动态数据网站,带有LINQtoSQL数据上下文。 SQL Server数据库中的一列是NVARCHAR(MAX),它包含一个XML片段。我已将其映射到.dbml文件中的XElement。我为类添加了元数据,并为属性添加了UIHint,还编写了一个自定义字段模板,该模板在树视图中显示XML内容。 很像 现在我想实际编辑数据字段。一个简单的文本编辑器可以做到这一点,我想我应该复制多行编辑字段模板。在编辑页面上,它确实显示了,我可以编辑内容。但是这种方法有点太简单了,当我按

我有一个Asp.NET4.0动态数据网站,带有LINQtoSQL数据上下文。 SQL Server数据库中的一列是NVARCHAR(MAX),它包含一个XML片段。我已将其映射到.dbml文件中的XElement。我为类添加了元数据,并为属性添加了UIHint,还编写了一个自定义字段模板,该模板在树视图中显示XML内容。 很像

现在我想实际编辑数据字段。一个简单的文本编辑器可以做到这一点,我想我应该复制多行编辑字段模板。在编辑页面上,它确实显示了,我可以编辑内容。但是这种方法有点太简单了,当我按下update时,我会看到一个红色的
验证错误列表:该值无效。
位于页面顶部。 我注释掉了DynamicValidator,但是现在我得到了一个ServerError,它无法保存我的编辑,因为它无法将我的编辑从字符串转换为XElement

我找到了一个解决方案,但它没有显示解决方案


所以我的问题是:我的XML编辑字段模板应该是什么样的?

尝试使用
XDocument
类型,它是可序列化的。

LINQ to SQL和动态数据不能很好地结合在一起

因此,不要将XML内容映射到XElement。将其映射到字符串


您可以很好地使用自定义字段模板,但它们是基于字符串的。

到目前为止,我唯一能使其工作的方法是将.dbml中的类型更改为字符串。根本原因似乎是XElement不可序列化,因此无法置于ViewState中。我看到了一个添加TypeConverter的建议,但我不知道怎么做。不幸的是,XDocument也不能序列化。他们确实有很多方法。