ASP.NET动态数据中编辑XElement数据类型的字段模板

9
我有一个使用LINQ to SQL数据上下文的Asp.Net 4.0动态数据网站。 SQL Server数据库中的一列是NVARCHAR(MAX)类型,包含XML片段。我已将其映射到.dbml文件中的XElement。我已经为该类添加了元数据,并对属性添加UIHint,并编写了自定义字段模板,在TreeView中显示XML内容。 就像如何使用asp.net Dynamic Data编辑SQL Server XML数据字段所述。
现在,我想实际编辑数据字段。一个简单的文本编辑器就行了,所以我想复制MultiLine_Edit字段模板。在编辑页面中它确实显示出来了,我可以编辑内容。但是,这种方法过于简单,当我按更新时,页面顶部会出现红色的List of validation errors: The value is not valid.。 我注释掉了DynamicValidator,但现在我得到一个ServerError,因为它无法将我的编辑从字符串转换为XElement,因此无法保存我的编辑。
我在asp.net论坛上找到了一篇旧帖子,有人试图做同样的事情,但它没有给出解决方案。
所以我的问题是:我的XML_Edit字段模板应该是什么样子?

到目前为止,我唯一能让它工作的方法是将.dbml中的类型更改为字符串。根本原因似乎是XElement不可序列化,因此无法放入ViewState中。我看到有人建议添加TypeConverter,但不知道如何操作。 - flup
2个回答

1
尝试使用可序列化的XDocument类型代替。

不幸的是,XDocument 也不可序列化。它们确实有 ToString 方法。 - flup

0

LINQ to SQL和Dynamic Data不太兼容。

因此,不要将XML内容映射到XElement。而是应该映射到字符串。

您可以完全使用自定义字段模板,但是请以字符串为基础。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接