2

作成したモジュールで MvcMailer を Orchard CMS で使用しており、電子メールを送信することはできますが、電子メールの本文が空であり、Orchard が受信していないと信じています"/[Module] /Views/[NameOfMailerFolder/_Layout.cshtml" または ".../[NameofMailerView].cshtml".

最初は、"/[Module]/Views/[NameOfMailerFolder]" を "/[ThemeBeingUsed]/Views" フォルダーまたは Orchard.Web の "/Views" フォルダーに移動するとうまくいくのではないかと考えました (単にパスが見つからない)。しかし、運がありません。

モジュールで route.cs をいじってみましたが、CONTROLLER と ACTION を空 ("") のままにして、そこに "/[Module]/Views/[NameOfMailerFolder]" を入れることができるかどうかわかりません。それだけ。いずれにせよ、「[NameOfMailerView].cshtml」のルートを作成しましたが、それも機能しませんでした。これが正しい方法であるかどうか疑問に思っています(コントローラーでアクションを設定していませんが、そうするつもりです-リダイレクトする必要がありますか?)。

私は少し迷っているので、ご指導いただければ幸いです。

4

1 に答える 1

3

Mailer コードが MasterName を使用していることが判明しました。これが、Orchard CMS の処理方法に問題を引き起こしているようです。

これが私にとって機能する理由です(1.3またはOrchard.Webを使用):

public QuoteMailers()
    : base()
{
    //LEAVE OUT FOLLOWING FOR MVC MAILER TO WORK
    //MasterName = "_Layout";
}

QuoteMailers は私の名前です。VS でパッケージ マネージャー コンソールを使用している場合、MvcMailer は使用するパラメーターに基づいて名前を作成します。

MasterName をコメントアウトすると機能します。この「ハック」の唯一の欠点は、共通の _Layout ファイルを使用しないことです。パーシャルを使用できるので、私にとっては大したことではありません。

于 2012-02-03T14:41:10.883 に答える