Tôi có trang web dữ liệu động Asp.Net 4.0 với ngữ cảnh dữ liệu LINQ to SQL. Một trong các cột trong cơ sở dữ liệu SQL Server là NVARCHAR (MAX) và chứa một đoạn XML. Tôi đã ánh xạ điều này đến XElement trong tệp .dbml. Tôi đã thêm siêu dữ liệu cho lớp với UIHint cho thuộc tính và tôi đã viết một mẫu Trường tùy chỉnh hiển thị nội dung XML trong TreeView. Giống như How to edit a SQL Server XML data field with asp.net Dynamic DataMẫu trường để chỉnh sửa kiểu dữ liệu XElement trong Dữ liệu động Asp.Net
Bây giờ tôi muốn thực sự chỉnh sửa trường dữ liệu. Một trình soạn thảo văn bản đơn giản sẽ làm như vậy tôi nghĩ tôi sẽ sao chép mẫu trường MultiLine_Edit. Trên trang chỉnh sửa, nó thực sự hiển thị và tôi có thể chỉnh sửa nội dung. Nhưng cách tiếp cận này hóa ra hơi đơn giản khi tôi nhấn cập nhật, tôi nhận được một màu đỏ List of validation errors: The value is not valid.
ở đầu trang. Tôi nhận xét ra DynamicValidator, nhưng bây giờ tôi nhận được một ServerError thay vì nó không thể lưu các chỉnh sửa của tôi gây ra nó không thành công khi chuyển đổi các chỉnh sửa của tôi từ String thành XElement.
Tôi đã tìm thấy old post on the asp.net forums from someone trying to do the same thing nhưng không hiển thị giải pháp.
Vì vậy, câu hỏi của tôi là: Mẫu trường XML_Edit của tôi trông như thế nào?
Cách duy nhất tôi có thể làm điều này để làm việc cho đến nay, là thay đổi loại trong chuỗi .dbml thành chuỗi. Nguyên nhân gốc dường như là XElement không phải là Serializable và do đó không thể được đặt trong ViewState. Tôi đã nhìn thấy một gợi ý để thêm một TypeConverter, nhưng không biết làm thế nào để làm điều này. – flup