ユーザーが HTML をシステムに送信し、結果のページを「プレビュー」できるシステムに取り組んでいます。ユーザーによって送信された HTML は、ビュー内の HTML.Raw への呼び出しを介してページに提供され、他のデータと共にテーブルの一部として表示されます。単純な実装では、次のように表示されます。
...
<td>
<div>@Html.Raw(UserEnteredHTMLIsFetchedHere)</div>
</td>
...
私が抱えている問題は、ユーザーが入力した HTML にエラーがないことが保証されていないことです (実際にはそうではありません)。ユーザーが HTML に閉じられていない div タグを入力してプレビューすると、Html.Raw によって返された閉じられていないタグがHtml.Raw 呼び出しの外側の /div で閉じられ、ページ全体で不適切なネストが作成されます。
閉じられていないタグがページの残りの部分に干渉しないように、Html.Raw の出力を隔離する方法を探しています。
これを実現するために iframe タグを使用しようとしましたが (src をエンコードされた HTML に設定)、CSS ではうまくいきませんでした。可能であれば、ページの既存の CSS を隔離された HTML 内に保持したいと考えています。
これが Html.Raw の使用方法であるかどうかはわかりませんが、これは私が作成するのではなく変更する実装であり、可能な限り元の実装を維持したいと考えています。