0

問題は、プラットフォームがクライアントのレポートを生成することです。しかし、各クライアントのレポートには同じ情報がありますが、レイアウトは異なります。クライアントがレイアウトを変更するたびに、部分的なビューを生成し、ソリューションを再コンパイルして公開したくありません。

部分的なビュー (レポート) を表す文字列をデータストアに格納し、実行時にモデルを使用してビューに渡し、レンダリングしたいと考えています。

いくつかの解決策を探していますが、部分ビュー ファイルが必要です。記事 ( http://www.umbraworks.net/bl0g/rebuildall/2009/11/17/ASP_NET_MVC_and_virtual_views ) はアイデアを提供しますが、この場合、クライアントは常に同じ URL (~/Reports/SomeReport/2 など) でアクセスします。ここで、2 はクライアントが所有するオブジェクトの ID です (クライアントとオブジェクトの関係は、1 つのクライアントと複数のオブジェクト)。

この問題を解決するにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

1

編集: RazorEngine の周りのコメントを回答に移動すると、より関連性が高いと思われます。

動的テンプレート (たとえば、テンプレート コンテンツがデータベースから取得され、モデルにバインドされる場合)の場合、 RazorEngineがこのユース ケースに適用できるようです。


生の HTML のレンダリング [nkvu - 歴史的な目的のためにここを「元の」ものとして残し、正しくない応答が正しい応答につながる]

画面に表示したいだけの HTML 文字列がある場合は、 を使用できますHtml.Raw()。これは古いですが、Raw() がどのように機能するかを説明する必要があります。使用例を誤解していた場合は申し訳ありません。

ただし、HTML をそのままレンダリングするために発生する可能性のあるさまざまなインジェクション攻撃をテスト/防御することをお勧めします。この回答を検討して更新するためのリンクをいくつか見つけようと思います。

于 2013-03-27T17:17:26.050 に答える