2010-07-06 6 views
3

Je suis confus quel est le meilleur.Est-il toujours préférable d'utiliser le contrôle d'asp?

ASPX:

<asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink> 

code:

String url = "http://stackoverflow.com"; 
if(IsShow) 
{ 
    HyperLink1.Visible = true; 
    HyperLink1.NavigateUrl = url; 
} 

et la deuxième option est:

<%if(IsShow){%> 
<a href="<%=url%>">HyperLink</a> 
<%}%> 

Ces deux façons de faire exactement la même.

Lequel est le meilleur, et pourquoi?

Répondre

4

Il est principalement pour une meilleure lisibilité que le premier est préféré (bien que le code collé est invalide -. Vous avez besoin de l'envelopper dans une balise de script et spécifier la fonction (c.-à-Page_Load) pour faire votre logique

En second lieu , la deuxième méthode est exécutée sur Page_PreRender, vous êtes donc limité en effectuant une logique en fin de vie de la page Vous remarquerez cette méthode lors de la programmation dans ASP.NET MVC (car il n'y a pas de modèle code-behind). Utilisez la première méthode dans Web Forms, la deuxième dans ASP.NET MVC

+0

Mais si j'ai besoin de modifier le lien, la première option doit être compilé. et la deuxième option n'a pas besoin d'être compilée. Cela signifie que je peux réagir immédiatement .. n'est-ce pas? –

+0

Le contrôle ASP.NET consomme plus de ressources serveur en général, car une instance du contrôle doit être créée. Personnellement, j'évite d'utiliser le contrôle ASP.NET ou d'utiliser un HTML simple runat = "server" uniquement. – airmanx86

+0

Il doit encore être compilé. Les propriétés "IsShow" et "url" sont des propriétés de serveur. Le cycle de vie de la page continue de fonctionner, ce qui entraîne l'évaluation de toutes les propriétés de la page. Dans cet exemple, vous n'avez besoin d'aucun code de serveur. Rendez simplement l'URL et le IsShow au client en tant que variables (en utilisant RegisterClientSideScript), et utilisez-les dans une balise HTML standard. – RPM1984

Questions connexes