アーキテクチャの多くを明らかにし、どのように私はそれを解決することになりました。私は次のプロジェクト/アセンブリを持っている:
- ビジネスは
- VB XMLデ/シリアルライブラリVBのXMLアセンブリが扱ったビジネス・オブジェクトをシリアライズ扱う
- ASP.NET MVCプロジェクト
オブジェクトビジネス(#1)モデルのみ。
<invoice>
<invoiceId>1234</invoiceId>
<customer>Hudsucker Industries</customer>
<otherBusinessData>etc, etc</otherBusinessData>
</invoice>
問題は、私はjqGridを使用していますが、私は特定のアクションに各請求書に要素を追加する必要が生じたので、私のようなものが必要です:
<invoice>
<actionHtml><![CDATA[ ...some HTML such as links... ]]></actionHtml>
<invoiceId>1234</invoiceId>
<customer>Hudsucker Industries</customer>
<otherBusinessData>etc, etc</otherBusinessData>
</invoice>
をだから私はこのような出力のXElementが何かだろう私はそれを働かせましたが、私は明らかに懸念の良い分離ではないコントローラ内のすべてのactionHtmlを生成しなければならなかった、私はすべての私のHtmlHelperメソッドなどを失った。だから私は「正しい」方法、それを解決することになった方法です:
- Webフォームビューを使用して(私は私のページの点字ビューを使用)[私はXMLに設定したContentTypeのページ属性を使用することができます]。
- 生のビジネスオブジェクトのコレクションをモデルデータとして渡します。
- ループ出力を視野に、各請求書actonHtml要素を構築するモデルコレクション、(それゆえ私のHtmlHelperのメソッドを取得し、そのような)
- 私は単に私のVBのXMLライブラリを呼び出すと行うことができ、実際のビジネスの要素:
invoice.ToXml().Elements().ToString()
と私は元気です。
さらに私は、私はちょうど、実際のページにその情報を渡すだけの要素データの出力を心配することができますので、コンテンツ領域内のすべてのレコード数と、そのようなを持ってjqGridマスターページを作成し、これはより多くの再利用可能にします。