我有一个名为&#34的模型类; QuoteModel"并在其中的一个方法名为" SendEmail"发送电子邮件。我有一个名为"免责声明"这只是html(没有剃刀或模型)。有没有办法从" SendEmail"内部获取视图的html作为字符串?功能
我已经尝试找到答案,但大多数答案都与从控制器内部获取html与模型有关。
答案 0 :(得分:2)
使用这个现成的功能
public string RenderRazorViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,
viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View,
ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}
并将其命名为
string result = RenderRazorViewToString("Disclaimer", QuoteModel);
请相应地进行必要的小修改