C# 从模型内部获取视图HTML

C# 从模型内部获取视图HTML,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我有一个名为“QuoteModel”的模型类和一个名为“SendEmail”的发送电子邮件的方法。我有一个名为“免责声明”的部分视图,它只是html(没有剃刀或模型)。有没有办法从“SendEmail”函数中以字符串形式获取视图的html 我试图找到答案,但大多数答案都与从控制器内部获取html而不是模型有关。使用这个现成的函数 public string RenderRazorViewToString(string viewName, object model) {

我有一个名为“QuoteModel”的模型类和一个名为“SendEmail”的发送电子邮件的方法。我有一个名为“免责声明”的部分视图,它只是html(没有剃刀或模型)。有没有办法从“SendEmail”函数中以字符串形式获取视图的html


我试图找到答案,但大多数答案都与从控制器内部获取html而不是模型有关。

使用这个现成的函数

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


请相应地进行所需的小修改

使用此现成功能

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


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

是否发送一封邮件,邮件正文为html视图?您好,谢谢您的回复。是的,这是正确的。你想发送一封以html作为邮件正文的电子邮件吗?嗨,谢谢你回来。是的,这是正确的,当我把它放在我的方法中时,它无法解析“RazorViewToString()调用。我一定是缺少了什么:[code]这是我的模型和方法[code]公共类QuoteModel{public void SendEmail(){string result=RazorViewToString.RenderRazorViewToString(这个“免责声明”,null);}[/code}检查更新的答案&当我在方法中放置无法解析“RazorViewToString()调用”时,请尽快告诉我结果。我一定缺少了什么:[code]这是我的模型和方法[code]公共类QuoteModel{public void sendmail(){string result=RazorViewToString.RenderRazorViewToString()(此,“免责声明”,空);}}[/code}检查更新的答案并尽快告诉我结果