ASP.NET如何将控件呈现为HTML?
时间:2020-03-05 18:52:11 来源:igfitidea点击:
我有任何ASP.NET控件。我想要HTML字符串如何获取控件的HTML字符串?
解决方案
回答
这似乎起作用。
public string RenderControlToHtml(Control ControlToRender) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); System.IO.StringWriter stWriter = new System.IO.StringWriter(sb); System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(stWriter); ControlToRender.RenderControl(htmlWriter); return sb.ToString(); }
回答
如果控件是Web用户控件,则可以通过以下方法获取从另一个页面或者处理程序发出的HTML:
public void GetHtmlFromMySweetControl(HttpContext context) { HttpRequest httpRequest = context.Request; HttpResponse httpResponse = context.Response; string foo = httpRequest["foo"]; Page pageHolder = new Page(); string path = "~/usercontrols/MySweetControl.ascx"; MySweetControl ctrl = (MySweetControl)pageHolder.LoadControl(path); ctrl.BindProducts(foo); pageHolder.Controls.Add(ctrl); StringWriter sw = new StringWriter(); context.Server.Execute(pageHolder, sw, false); httpResponse.Write(sw.ToString()); }