6

私がやろうとしているのは、さまざまなテンプレートを使用して電子メール コンテンツを生成することです。

ASP.NET MVC はこれに適していると思います。私のコントローラーは、電子メールに必要なデータを取得し、レンダリングするビュー (テンプレート) を決定します。(単純なメールマージではなく、条件付きブロック、foreach などが必要です。)

これらのテンプレートを Web アプリケーションのファイルとしてではなく、データベースに保存できるようにしたいので、Web アプリケーション自体から新しいテンプレートを簡単に追加できます。

これは可能ですか?WebForms ビュー エンジンを使用できるようにしたいと考えていますが、それが不可能な場合は、他のビュー エンジンを検討します。理想的には、型付きビューを使用したいと思います。

4

4 に答える 4

2

残念ながら、WebForms ViewEngine はいくつかの内部クラスを使用して aspx および ascx ファイルをコンパイルするため、これは不可能です。その ViewEngine では、ビューがサイトのルート内のフォルダー内のファイルとして利用可能である必要があります (仮想フォルダーも IIRC で機能します)。

XSLT を使用するものなど、目的により適した他の ViewEngine があります。

AFAIR では、同じアプリケーションで複数の ViewEngine を混在させることができるため、通常の Web ページには WebForms エンジンを使用し、電子メールには別のエンジンを使用できます。

于 2009-09-23T20:52:34.210 に答える
2

実際、同じアプリケーションで複数のビュー エンジンを使用できます。フレームワークは、要求されたビューをレンダリングできるかどうかを各エンジンに尋ねます。MvcContrib で他の利用可能なビュー エンジンを確認してください ...

前の回答で述べたように、WebForms ViewEngine は、ASP.NET と同じように、ビュー (aspx、ascx) がファイル システムに物理的に格納されていることを前提としています (ただし、ASP.NET にはVirtualPathProviderのようなものがあります)。 - 私が思うに - 元々は SharePoint などをサポートするためにフレームワークに追加されたものです)。

独自のビュー エンジンを作成する場合は、IViewEngine を実装し、ビュー エンジンを ViewEngines コレクション (Application_Start など) に追加する必要があります。

于 2009-09-23T21:44:35.677 に答える
1

Phil Haack は、ここに似たような素晴らしい記事を書いています。

ニーズに合わせて調整できると思います。

親切、

ダン

于 2009-09-24T12:10:44.430 に答える
0

ビューエンジンを作成する必要があるため、ビルドマネージャーを作成する必要があります。ビューエンジンは、db から aspx 部分を取得し、Web フォーム エンジンを呼び出すだけです。簡単ではありませんが、実行可能です。それは主に、これがどれだけ必要か、そしてどのように優れた ROI で報われるかによって異なります。

于 2010-11-08T16:04:32.580 に答える