Tengo una carga de UserControl
objetos (ascx
archivos) en su propio pequeño proyecto. Luego hago referencia a este proyecto en dos proyectos: la API REST (que es un proyecto de biblioteca de clase) y el sitio web principal.Representación gráfica de un web UserControl
Estoy seguro de que esto sería fácil en el sitio web, simplemente use Controls.Add
en cualquier Panel
o el control ASP.NET funcionaría.
Sin embargo, ¿qué pasa con la API? ¿Hay alguna forma de que pueda renderizar el código HTML de este control simplemente conociendo el tipo de control? El método RenderControl no escribe ningún HTML al escritor ya que el ciclo de vida del control ni siquiera ha comenzado.
Tenga en cuenta que no tengo los controles en el proyecto web, por lo que no tengo una ruta virtual al archivo ascx
. Entonces, el método LoadControl no funcionará aquí.
Todos los controles en realidad derivan del mismo control de base. ¿Hay algo que pueda hacer desde esta clase base que me permita cargar el control desde una instancia completamente nueva?
Buscando buena rick. Estoy tratando de implementar eso ahora en mi estructura. Una cosa que he notado - 'HtmlForm form = new HtmlForm();'. Esta variable nunca se usa, porque 'form.Controls.Add' está comentada? ¿Me estoy perdiendo de algo? – Connell
Voy a actualizar, hay una manera de hacerlo con un formulario regular, pero si su control no tiene una etiqueta de formulario o no agrega uno programáticamente, obtendrá un error de tiempo de ejecución. Eso es lo que la clase FormLessPage omite para usted. –