2013-01-17 7 views
9

Possiedo un sito Web Dynamic Data Asp.Net 4.0 con un contesto dati LINQ to SQL. Una delle colonne nel database SQL Server è NVARCHAR (MAX) e contiene un frammento XML. Ho mappato questo a XElement nel file .dbml. Ho aggiunto i metadati per la classe con un UIHint per la proprietà e ho scritto un modello Campo personalizzato che mostra i contenuti XML in un TreeView. Molto simile a How to edit a SQL Server XML data field with asp.net Dynamic DataModello di campo per la modifica del tipo di dati XElement in Asp.Net Dynamic Data

Ora mi piacerebbe davvero modificare il campo dati. Un semplice editor di testo funzionerà così ho pensato di copiare il modello di campo MultiLine_Edit. Nella pagina di modifica è in effetti visualizzato e posso modificare i contenuti. Ma questo approccio risulta essere un po 'troppo semplice per quando preme l'aggiornamento, ottengo un rosso List of validation errors: The value is not valid. nella parte superiore della pagina. Ho commentato DynamicValidator, ma ora ho un errore ServerError che non può salvare le mie modifiche perché non riesce a convertire le mie modifiche da String a XElement.

Ho trovato un old post on the asp.net forums from someone trying to do the same thing ma non mostra una soluzione.

Quindi la mia domanda è: come dovrebbe essere il mio modello di campo XML_Edit?

+0

L'unico modo in cui riesco a far funzionare tutto questo è quello di modificare il tipo in .dbml in stringa. La causa principale sembra essere che XElement non è serializzabile e quindi non può essere inserito in ViewState. Ho visto un suggerimento per aggiungere un TypeConverter, ma non so come farlo. – flup

risposta

0

LINQ a SQL e dati dinamici non funzionano bene insieme.

Quindi non associare il contenuto XML a XElement. Mappalo invece su stringa.

È possibile utilizzare modelli di campo personalizzati, ma basarli su stringhe.

1

Provare invece a utilizzare il tipo XDocument, che è serializzabile.

+0

Sfortunatamente, un XDocument non è serializzabile neanche. Hanno metodi ToString. – flup

Problemi correlati