以下のAS:NET / Mono MVC2 メソッドで は、Render a view as a stringを使用して HTML メール本文を作成します。
部分ビュー Order.ascx には次のような画像が含まれています
<img width='20%' alt='' src='<%= Url.Action("Logo", "Store")%>' />
電子メールでは、これらの画像はサイト アドレスなしで表示/Store/Logo
されるため、画像は表示されません。画像リンクを絶対アドレスで強制的に表示する方法htttp:/Mysite.com/Store/Logo
や、HTML メール本文にサイト ベース アドレスを追加する方法が役立ちます。
ASP.NET / Mono MVC2 、.NET 3.5、jquery、jquery ui が使用されます。
コントローラ アクション メソッド:
var s = RenderViewToString<OrderConfirm>("~/Views/Checkout/Order.ascx", order);
public class ControllerBase : Controller
{
protected string RenderViewToString<T>(string viewPath, T model)
{
ViewData.Model = model;
using (var writer = new StringWriter())
{
var view = new WebFormView(viewPath);
var vdd = new ViewDataDictionary<T>(model);
var viewCxt = new ViewContext(ControllerContext, view, vdd, new TempDataDictionary(), writer);
viewCxt.View.Render(viewCxt, writer);
return writer.ToString();
}
}