usuarios personalizada permisos net mvc example autorización autenticación autenticacion asp anexsoft asp.net web-controls servercontrols

personalizada - ¿Cómo hago que mi control de servidor ASP.NET tome un bloque de código incrustado como valor de propiedad?



mvc 5 login example in c# (5)

Tengo un control de servidor personalizado con una propiedad de Título. Cuando utilizo el control, me gustaría establecer el valor del título en la página aspx así:

<cc1:customControl runat="server" Title=''<%= PagePropertyValue%>'' > more content </cc1:customControl>

Sin embargo, cuando hago esto, obtengo el String <% = PagePropertyValue%> exacto que se muestra en lugar del valor de propiedad que me gustaría ver.

Entonces, después de probar la expresión de enlace de datos (como se sugiere a continuación). No entiendo el literal de la cadena que se veía mal, pero tampoco consigo nada más.

<cc1:customControl runat="server" Title=''<%# PagePropertyValue%>'' > more content </cc1:customControl>

¿Qué debo hacer con mi control personalizado para tomar este tipo de valor? O hay algo que debo hacer en la página.


Intente utilizar la sintaxis de enlace de datos: <%# PagePropertyValue %>


Para que el valor de la propiedad de enlace funcione correctamente como se sugiere, tendrá esto en el archivo aspx o ascx:

<cc1:customControl runat="server" Title=''<%# PagePropertyValue %>'' > more content </cc1:customControl>

Necesitará vincular los datos en su página que debe agregar en su código detrás del archivo (código en C #)

protected void Page_Load(object sender, EventArgs e) { DataBind(); }

De esa forma vinculará los datos en su archivo ascx o aspx.


Como seguimiento de mi propia pregunta, descubrí que lo que realmente quería era usar expresiones ASP.NET usando la sintaxis <% $, ya que lo que quería hacer era poner contenido localizado.

Esto se puede hacer aparentemente sin manejo adicional en el lado del control del servidor.

<cc1:customControl runat="server" Title=''<%$ Resouces: ResourceFile, ContentKey %>'' > more content and controls </cc1:customControl>

Esto funciona bien.


Tenga en cuenta que esto es específico para los atributos de control. Al usar la sintaxis <% = fuera de los atributos de control que significan en cualquier otro lugar de la página, la sintaxis funciona como se espera. Entonces este <% = GetCapitalUserName ()%> Llamaría al método correcto e inyectaría el resultado de la llamada en la página.


No puedes <% =%> escribirá la cadena directamente en la secuencia de respuesta, que ocurre después de que se construye el control del servidor. Vea esta publicación para una explicación.

Por lo tanto, es un enlace de código o <% # + como lo sugiere Zachary.