从模型内部获取视图HTML

时间:2017-10-18 18:40:03

标签: c# asp.net-mvc razor

我有一个名为&#34的模型类; QuoteModel"并在其中的一个方法名为" SendEmail"发送电子邮件。我有一个名为"免责声明"这只是html(没有剃刀或模型)。有没有办法从" SendEmail"内部获取视图的html作为字符串?功能

我已经尝试找到答案,但大多数答案都与从控制器内部获取html与模型有关。

1 个答案:

答案 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);

elementFromPoint summary

请相应地进行必要的小修改