相关疑难解决方法(0)

ASP.NET MVC Razor:如何在控制器动作中呈现Razor Partial View的HTML

如何在ASP.NET视图引擎上生成给定局部视图的HTML 是已知的.

但是如果在razor局部视图上使用此功能则它不起作用,因为异常说部分视图不是从"UserControl"派生的.

如何修复渲染以支持剃刀局部视图?

我需要这个,因为我从这个部分视图生成电子邮件...

更新:

失败的代码(@mcl):

public string RenderPartialToString(string controlName, object viewData)
    {
        ViewPage viewPage = new ViewPage() { ViewContext = new ViewContext() };
        viewPage.Url = this.GetUrlHelper();

        string fullControlName = "~/Views/Email/" + controlName + ".ascx";

        viewPage.ViewData = new ViewDataDictionary(viewData);
        viewPage.Controls.Add(viewPage.LoadControl(fullControlName));

        StringBuilder sb = new StringBuilder();
        using (StringWriter sw = new StringWriter(sb))
        {
            using (HtmlTextWriter tw = new HtmlTextWriter(sw))
            {
                viewPage.RenderControl(tw);
            }
        }
        return sb.ToString();
    }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc razor

97
推荐指数
3
解决办法
13万
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

razor ×1