---
title: "Ladda in UserControl med HtmlForm med jQuery"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/179073-ladda-in-usercontrol-med-htmlform-med-jquery"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "PBF"
published: "2009-06-21T11:01:40.000Z"
updated: "2009-06-23T05:48:44.000Z"
replies: 1
views: 437
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/179073-ladda-in-usercontrol-med-htmlform-med-jquery"
---

# Ladda in UserControl med HtmlForm med jQuery

## #1 — PBF, 2009-06-21T11:01Z

Tjenare!

Har en profilmeny för varje användare där länken är i detta format: *Profile.aspx?Id=584*.

Profilmenyn är uppbyggd av jQuery.tabs() och varje gång man klickar på en flik så körs en jQuery.ajax-GET mot en Generic Handler (\*.ashx) som hämtar en användarkontroll och konverterar denna till en String som jag sedan addera i flikens content-\<div\>. Detta gör jag med följande kod:

```
                    string userControl = context.Request.QueryString["userControl"].ToString();
    
                    string fullPath = path + userControl + ext;
    
                    string userControlOutput = [I]UserControlUtilities.ControlAsString(fullPath);[/I]
    
                    context.Response.Write(userControlOutput);
```

Om man har serverkontroller vilket jag givetvis har i mina användarkontroller så krävs det en \<form\>-tagg runt dessa när de laddas in dynamiskt som i mitt fall. Denna skapar jag programmatiskt i min  UserControlUtilities**.ControlToString()**\-metod som ser ut som följer:

```
     public static string ControlAsString(string ucPath) {
    
                Page page = new Page();
                page.EnableViewState = false;
                UserControl userControl = page.LoadControl(ucPath) as UserControl;
    
                HtmlForm form = new HtmlForm();
    
                form.ID = "ProfileForm";
               
               form.Controls.Add(userControl);
  
               page.Controls.Add(form);
   
               StringWriter writer = new StringWriter();
   
               HttpContext.Current.Server.Execute(page, writer, true);
   
               return writer.ToString();
           }
```

\<form\>-taggen renderas såhär i Html-koden...
\<form id="ProfileForm" onsubmit="javascript:return WebForm_OnSubmit();" action="/GenericHandlers/ProfileMenu.ashx" method="post" name="ProfileForm"\>

... vilket betyder att varje gång det sker en knapptryckning eller nåt likande så skickas man till \<form\>-taggens Action-attribut då den skapas i min Generic Handler (ProfileMenu.ashx).

Jag har försökt att programmatiskt sätta form.Action = "Profile.aspx?Id=584"; i ControlToString(), då postas man till rätt adress men knappen/dropdownlist eller nåt annat som har ett Event av nåt slag **körs aldrig**.

Någon som upplevt detta tidigare? Har ni nåt förslag på lösning?

Permalänk: https://www.webforum.nu/p/179073

## #2 — PBF, 2009-06-23T05:48Z

Hörde att jag måste skapa alla serverkontroller som finns i mina användarkontroller dynamiskt i samband med att jag laddar in användarkontrollen, det blir ett grovt jobb i så fall då jag har väldigt många användarkontroller med serverkontroller.

Det måste finnas en alternativ lösning?

Permalänk: https://www.webforum.nu/p/2191256

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/179073-ladda-in-usercontrol-med-htmlform-med-jquery
