Je suis entrain de créer un moteur de courrier électronique dans mvc3 et je suis en train d'utiliser de rasoir vues comme des modèles d'e-mail. J'ai entendu c'est possible, mais je n'ai pas encore trouvé aucune information à ce sujet.
Réponses
Trop de publicités?Vous pouvez utiliser http://razorengine.codeplex.com/ pour atteindre cet objectif. Il vous permet d'utiliser de rasoir à l'extérieur de la mvc.
string Email = "Hello @Model.Name! Welcome to Razor!";
string EmailBody = Razor.Parse(Email, new { Name = "World" });
C'est simple à mettre en œuvre et il est disponible sur http://nuget.codeplex.com/ pour une intégration facile dans vos projets.
Vous POUVEZ utiliser un fichier de modèle de servir comme un rasoir corps du message électronique modèle. Vous pouvez utiliser n'importe quelle extension que vous choisissez parce que vous pouvez charger un fichier en tant que texte .Net. Nous allons utiliser l'exemple suivant pour le modèle:
Hello @Model.Name,
Welcome to @Model.SiteName!
Regards,
Site Admins
Enregistrez le fichier en tant que quelque chose comme "WelcomeMessage.cshtml", "WelcomeMessage.modèle", etc. Sélectionnez le fichier dans l'Explorateur de solutions et dans la fenêtre Propriétés, sélectionnez "Copier dans le Répertoire de Sortie" et choisissez "Copy". Le seul point est que ce modèle doit accompagner la demande et ne compile pas en tant que classe.
Maintenant, nous voulons analyser comme une chaîne de caractères à attribuer à un corps du message électronique. Rasoir prendre le modèle et un modèle de classe, les analyser, puis de retourner une chaîne de caractères avec les valeurs nécessaires. Dans votre application, vous devez ajouter le RazorEngine paquet qui peut être trouvé avec NuGet. Voici un court exemple de code pour illustrer l'utilisation:
using System.IO;
using RazorEngine;
// ...
MyModel model = new MyModel { Name = "User", SiteName = "Example.com" };
string template = File.OpenText("WelcomeMessage.template").ReadToEnd();
string message = Razor.Parse(template, model);
C'est comme pour les autres réponses, mais montre un moyen rapide pour charger le modèle à partir d'un fichier texte.
Vous pouvez également utiliser Essentielle Mail: Rasoir paquet de NuGet. C'est la construction de plus de RazorEngine et fournit une interface simple pour les e-mails de rendu.
E-mail modèle de message ressemble à quelque chose comme
@inherits Essential.Templating.Razor.Email.EmailTemplate
@using System.Net;
@{
From = new MailAddress("example@email.com");
Subject = "Email Subject";
}
@section Html
{
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>HTML part of the email</h1>
</body>
</html>
}
@section Text
{
Text part of the email.
}
Lire plus sur GitHub: https://github.com/smolyakoff/essential-templating/wiki/Email-Template-with-Razor
Vous voudrez peut-être essayer aussi cet article(code source inclus), il utilise un rasoir, mais il peut être utilisé à l'extérieur de la mvc. Très agréable http://kazimanzurrashid.com/posts/use-razor-for-email-template-outside-asp-dot-net-mvc