2013-01-17 10 views
9

LINQ to SQLデータコンテキストを使用したAsp.Net 4.0 Dynamic Data Webサイトがあります。 SQL Serverデータベースの列の1つにNVARCHAR(MAX)があり、XMLフラグメントが含まれています。これを.dbmlファイルのXElementにマップしました。プロパティのUIHintを持つクラスのメタデータを追加しました。ツリービューでXMLコンテンツを表示するカスタムフィールドテンプレートを作成しました。 よく似ていますHow to edit a SQL Server XML data field with asp.net Dynamic DataAsp.Net動的データのXElementデータ型を編集するためのフィールドテンプレート

ここで実際にデータフィールドを編集したいと思います。シンプルなテキストエディタがあるので、MultiLine_Editフィールドテンプレートをコピーしたいと思っていました。編集ページでは実際に表示されており、コンテンツを編集できます。しかし、この方法は、私が更新を押すと少し単純すぎることが判明し、ページの上部に赤色のList of validation errors: The value is not valid.が表示されます。 DynamicValidatorをコメントアウトしましたが、編集内容を保存できない代わりにServerErrorを取得しました。編集内容をStringからXElementに変換する際にエラーが発生します。

old post on the asp.net forums from someone trying to do the same thingが見つかりましたが、解決策はありません。

私の質問は:私のXML_Editフィールドテンプレートはどのように見えるのですか?

+0

これまでのところこれを実現する唯一の方法は、.dbmlの型を文字列に変更することです。根本原因は、XElementがSerializableではないため、ViewStateに入れることができないように見えます。 TypeConverterを追加する提案がありましたが、これを行う方法はわかりません。 – flup

答えて

0

LINQ to SQLとDynamic Dataは一緒にうまく再生されません。

したがって、XMLコンテンツをXElementにマップしないでください。代わりに文字列にマップします。

カスタムフィールドテンプレートはうまく使用できますが、文字列に基づいて作成できます。

1

代わりにXDocumentタイプを使用してみてください。これはシリアル化可能です。

+0

残念ながら、XDocumentはシリアル化できません。彼らはToStringメソッドを持っています。 – flup

関連する問題