Как использовать Actionmailer.Net.Standalone в консольном приложении?

Возможно ли использовать Actionmailer.Net.Standalone в консольном приложении? Я продолжаю получать сообщение об ошибке:

Не удалось найти какие-либо представления CSHTML или VBHTML с именем [CRD.html.cshtml] в пути [EmailTemplates]. Убедитесь, что вы указали формат в имени файла (то есть: CRD.html.cshtml.txt.cshtml или CRD.html.cshtml.html.cshtml).

Код

    public class Mailer : RazorMailerBase
{
    public override string ViewPath
    {
        get { return "EmailTemplates"; }
    }

    public RazorEmailResult Processed(string f)
    {

        From = group;
        To.Add(user);
        Subject = "CRD Process Server has processed file: " + f;
        return Email("CRD.html.cshtml");
    }
}

Нужно ли реализовать RazorViewEngine где-то, поскольку это не стандартно для консольного приложения?

3 ответа

Решение

Существует проект с открытым исходным кодом как общий шаблонизатор RazorEngine.

Шаблонизатор, созданный на основе технологии синтаксического анализа Razor от Microsoft. RazorEngine позволяет использовать синтаксис Razor для создания надежных шаблонов.

Просто;

string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });

Также доступно в NuGet;

Установить-пакет RazorEngine

Немного поздно, но, возможно, это все еще помогает:

Попробуй поменять

return Email("CRD.html.cshtml");

в

return Email("CRD");

Расширения добавляются автоматически.

Я разрабатываю полностью функциональную демоверсию здесь: http://jaider.net/posts/881-using-action-mailer-in-a-console-application/

исходный код находится в Github: https://github.com/jaider/Demo-Action-Mailer

Другие вопросы по тегам