Hej,
Jag har svårt att utläsa vad du är ute efter. Men om dina användarkontroller endast renderar innehåll och inte behöver ha några events så fungerar följande (i mina enkla tester). Jag har utgått ifrån att allting ligger i någon form av övergripande form-tagg (som normalt är i asp.net). Dvs, det verkar överflödigt att bygga upp en sida för varje kontroll på serversidan istället för att bara rendera innehållet.
Om jag missförstått så får du gärna förtydliga.
Kod:
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Text;
using System.IO;
using System.Web;
using System.Web.UI;
public class Handler : IHttpHandler {
private string path = "~/Controls/";
public void ProcessRequest (HttpContext context) {
string control = context.Request.QueryString["userControl"] as string;
string fullpath = path + control + ".ascx";
System.Web.UI.UserControl c = new System.Web.UI.UserControl();
System.Web.UI.Control cont = c.LoadControl(fullpath);
context.Response.ContentType = "text/plain";
context.Response.Write(RenderControl(cont));
}
public string RenderControl(Control ctrl)
{
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctrl.RenderControl(hw);
return sb.ToString();
}
public bool IsReusable {
get {
return false;
}
}
}