J'ai créé un contrôle utilisateur ASP.NET standard, y compris le fichier ascx. Par exemple:Lorsque j'instancie un composant usercontrol ASP.NET à l'exécution, pourquoi ignore-t-il le fichier ASCX?
MyUserControl.ascx
MyUserControl.ascx.cs
Alors j'essaie de rendre le contrôle manuellement, à l'exécution, en utilisant un code similaire au code suivant:
var testMyUserControl = new MyUserControl();
var textWriter =
new HtmlTextWriter(
new System.IO.StringWriter(new StringBuilder()));
testMyUserControl.RenderControl(textWriter);
Console.Write(textWriter.InnerWriter.ToString());
Rien que je mets dans le fichier ASCX semble rendre - soit HTML statique ou tous les contrôles .NET. Cependant, si je substitue la méthode Render() dans le contenu de code-behind et de sortie manuelle, il rendra.
Qu'est-ce qui me manque ici?
La méthode que vous proposez fonctionnerait très bien si je faisais cela dans un projet de site Web, mais comment le ferais-je dans une application de console, par exemple, dans une classe normale qui ne s'étend pas? – Jonathan
Vous ne pouvez pas. La méthode LoadControl requiert un chemin virtuel à partir d'un serveur Web (Casini, IIS). C'est la seule façon dont UserControl est destiné à être utilisé. –