2008-11-13 9 views
2

Je voudrais avoir une page ASPX qui contient quelque chose comme ....Comment est-ce que j'insère de manière déclarative une valeur de propriété d'une page dans son rendu?

<form id="form1" runas=server > 
    Hello <%= Me.UserName() %> 
</form> 

et un code-behind quelque chose comme ...

Public Class Somepage 
    inherits SomeOtherPage 
    Private Readonly Property UserName() as String 
    Get 
     return "Rory" 
    End Get 
    End Property 
End Class 

J'ai essayé ce code mais le ASPX les erreurs qui prétendent que UserName n'est pas déclaré.

Quelle est la bonne façon de procéder?

Répondre

3

Marquez la propriété comme protégée, pas privée.

Protected Readonly Property UserName() as String  
    Get   
      return "Rory"  
    End Get  
End Property 
+0

j'oubliais que ASPX hérite de la classe plutôt que d'être déclarée partielle avec elle ... L'homme que je me sens maintenant stupide :) –

+0

L'autre façon de faire, et à mon avis la méthode préférée qui préserve l'encapsulation, est d'utiliser un contrôle d'étiquette et explicitement définir la propriété de texte de l'étiquette. – TGnat

+0

D'accord. Mon exemple était grandement simplifié. En réalité, je remplis l'attribut value d'un certain nombre de contrôles htmlinput dont les attributs 'name' doivent être corrigés et donc je ne peux pas risquer le nom mangling qui pourrait résulter de l'utilisation de contrôles ASPx équivalents :) –

Questions connexes