2013-04-10 13 views
5

Jiletli ek açıklamalar içeren bir HTML kodu içeren bir Kısmi Görünümüm var. Bana kimseye e-posta ile göndermek istediğim bir sayfa oluşturuyor. Bu PartialView'ı göndermek için HTML içeriğine dönüştürmenin bir yolu var mı?PartialView içeriğini e-posta olarak gönder

+0

Belki bu yardımcı olabilir: http://akinyusufer.blogspot.in/2011/05/razor-render-mvc3-view-render-to-string.html –

+0

Muhtemelen aynı endişe/cevap Bu şekilde: [ASP.NET MVC Razor: Jeneratör Kısmi Görünümünün HTML'sini denetleyici eyleminin içine nasıl işlenir] (http://stackoverflow.com/a/4344602/1036187) – rivarolle

+0

[ASP.NET MVC Razor'un olası kopyası : Jeneratör Kısmi Görünümünün HTML'sini denetleyici eylemi içinde nasıl oluşturabilirim?] (Http://stackoverflow.com/questions/4344533/asp-net-mvc-razor-how-to-render-a-razor-partial-views-html -inside-kontrol) –

cevap

5

Ben (bunu .. o da uyumsuz yapabilir için kod yazmak zorunda kalmadan) MvcMailer tam olarak ne istediğinizi yapar kullanarak öneririm:

https://github.com/smsohan/MvcMailer/wiki/MvcMailer-Step-by-Step-Guide

Güncelleme

Açıklamalarda belirtildiği gibi, kendiniz uygulamak için çözüm (hala MvcMailer'in hayatınızı kolaylaştıracağını düşünüyorum):

protected string RenderPartialViewToString(string viewName, object model) 
{ 
    if (string.IsNullOrEmpty(viewName)) 
     viewName = ControllerContext.RouteData.GetRequiredString("action"); 

    ViewData.Model = model; 

    using (StringWriter sw = new StringWriter()) { 
     ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName); 
     ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw); 
     viewResult.View.Render(viewContext, sw); 

     return sw.GetStringBuilder().ToString(); 
    } 
} 

(ASP.NET MVC Razor: How to render a Razor Partial View's HTML inside the controller action)