我有一個帶有LINQ to SQL數據上下文的Asp.Net 4.0動態數據網站。 SQL Server數據庫中的一列是NVARCHAR(MAX)幷包含一個XML片段。我已經將這個映射到.dbml文件中的XElement。我已經爲這個類添加了一個UIHint的類的元數據,並且我寫了一個自定義字段模板來顯示TreeView中的XML內容。 很像How to edit a SQL Server XML data field with asp.net Dynamic Data用於在Asp.Net中編輯XElement數據類型的字段模板動態數據
現在我想實際編輯數據字段。一個簡單的文本編輯器會這樣做,我想我會複製MultiLine_Edit字段模板。在編輯頁面上它確實顯示,我可以編輯內容。但是,當我按更新時,這種方法變得有點過於簡單,我在頁面頂部獲得了一個紅色的List of validation errors: The value is not valid.
。 我註釋掉了DynamicValidator,但是現在我得到一個ServerError,而不能保存我的編輯,因爲它無法將我編輯的字符串轉換爲XElement。
我發現一個old post on the asp.net forums from someone trying to do the same thing但它不顯示解決方案。
所以我的問題是:我的XML_Edit字段模板應該是什麼樣子?
我可以得到這個工作到目前爲止的唯一方法是將.dbml中的類型更改爲字符串。根本原因似乎是XElement不是可序列化的,因此不能放入ViewState。我看到一個建議添加一個TypeConverter,但不知道如何做到這一點。 – flup