Mam witrynę dynamicznych danych Asp.Net 4.0 z kontekstem danych LINQ do SQL. Jedną z kolumn w bazie danych SQL Server jest NVARCHAR (MAX) i zawiera fragment XML. Zmapowałem to do XElement w pliku .dbml. Dodałem metadane dla klasy z interfejsem użytkownika dla tej właściwości i napisałem szablon pola niestandardowego, który pokazuje zawartość XML w TreeView. Podobnie jak How to edit a SQL Server XML data field with asp.net Dynamic DataSzablon pola do edytowania typów danych XElement w dynamicznych danych Asp.Net
Teraz chciałbym edytować pole danych. Prosty edytor tekstu zrobi to, więc pomyślałem, że skopiuję szablon pola MultiLine_Edit. Na stronie edycji rzeczywiście się wyświetla i mogę edytować zawartość. Ale to podejście okazuje się nieco zbyt proste, ponieważ kiedy naciśniemy aktualizację, na górze strony pojawi się czerwony List of validation errors: The value is not valid.
. Skomentowałem DynamicValidator, ale teraz dostaję ServerError zamiast tego, że nie może zapisać moich zmian, ponieważ nie uda mi się przekonwertować moich zmian z String do XElement.
Znalazłem old post on the asp.net forums from someone trying to do the same thing, ale nie pokazuje rozwiązania.
Moje pytanie brzmi: Jak powinien wyglądać mój szablon pola XML_Edit?
Jedyny sposób, w jaki mogę to osiągnąć, to zmienić typ w pliku .dbml na ciąg. Główną przyczyną wydaje się być to, że XElement nie jest Serializable i dlatego nie może być umieszczony w ViewState. Widziałem sugestię dodawania TypeConverter, ale nie wiem jak to zrobić. – flup