4

かなり奇妙な作業ですが、要件を変更することはできません。WCF サービス (REST ではなく SOAP) を作成し、応答オブジェクトのプロパティとして HTML を返す必要があります。

私は使いたくない:

  • 文字列をハードコーディングし、string.Format() を使用して値を入力します。
  • 将来このアプローチをサポートできる人は多くないため、t4 テンプレート。
  • ほとんどの開発者は MVC プロジェクトでの作業に慣れているので、WebForm コントロールを使用します。

一部の ActionResult を文字列にレンダリングする方法は既に知っています。したがって、理想的には、コントローラーを作成し、何らかのアクションを呼び出して、ActionResult を取得できるようにしたいと考えています。

そのために、MVC アプリケーションを作成し、それに service.svc ファイルを追加しました。サービスは正常に動作します。そのメソッドを呼び出して結果を受け取ることができます。しかし、Razor View をレンダリングしようとすると、問題が発生します。コントローラーのインスタンスを単純に作成してからアクションを呼び出すと、コントローラーのプロパティ ControllerContext が null になるため、View をレンダリングできません。その場で ControllerContext を作成しようとしましたが、何かが足りないようです。

ここで非常によく似た質問を見つけましたが、wcf メソッド内で HttpContext.Current が null であるため、そこで提供されたソリューションは機能しませんでした。

それを達成する方法を知っている体はありますか?または、誰かが WCF メソッド内で HTML をレンダリングするための他のシンプルで柔軟な方法を提案できますか?

4

2 に答える 2

2

RazorEngine の実装はより軽量であるため、Nancy フレームワーク ( http://nancyfx.org ) も確認する必要があります。

私は Nancy を使ってオンデマンドで HTML を生成することにかなりの成功を収めました。

于 2012-07-27T15:45:43.160 に答える