Si vous allez stocker le lien, alors je vous recommande fortement de les stocker en utilisant des noms sémantiques, comme ceci:
var GoogleUrl = "http://www.google.com";
var YahooUrl = "http://www.yahoo.com";
<ul>
<li><a href="<%= link001 %>'>Google</a></li>
<li><a href="<%= link002 %>'>Yahoo</a></li>
etc.
</ul>
Cependant, une serait une solution encore mieux de créer une classe statique avec des constantes (ou des champs) en lecture seule que vous pouvez accéder ensuite dans le code:
public static class Url
{
public const string Google = "http://www.google.com";
public const string Yahoo = "http://www.yahoo.com";
}
qui serait alors la cause de votre code de page pour ressembler à ceci:
<ul>
<li><a href="<%= Url.Google %>'>Google</a></li>
<li><a href="<%= Url.Yahoo %>'>Yahoo</a></li>
etc.
</ul>
Ce serait une bien meilleure façon d'encapsuler le concept des urls.
En ce qui concerne les listes, vous pouvez facilement étendre le concept, comme ceci:
public static class UrlList
{
public static IEnumerable<string> List1
{
get
{
// Return the first list:
yield return Url.Google;
yield return Url.Yahoo;
}
}
public static IEnumerable<string> List2
{
get
{
// Return the first list:
yield return Url.Yahoo;
yield return Url.Goggle;
}
}
}
Bien sûr, vous pouvez utiliser des tableaux pour sauvegarder les propriétés, mais ils sont mutable, et en général, quelque chose comme ça , ce n'est pas une bonne chose (une autre option serait d'exposer encore la propriété comme IEnumerable<string>
mais utiliser un ReadOnlyCollection<string>
comme un champ de support et de retour qui, qui préserverait l'immuabilité:
public static class UrlList
{
///<summary>The backing field for <see cref="List1"/>.</summary>
private static readonly ReadOnlyCollection<string> list1 =
new ReadOnlyCollection<string>(new [] {
Url.Google,
Url.Yahoo,
});
public static IEnumerable<string> List1
{ get { return list1; } }
///<summary>The backing field for <see cref="List2"/>.</summary>
private static readonly ReadOnlyCollection<string> list2 =
new ReadOnlyCollection<string>(new [] {
Url.Yahoo,
Url.Google,
});
public static IEnumerable<string> List2
{ get { return list2; } }
}
Cela pourrait être une façon de le faire : http://blog.devarchive.net/2008/01/auto- generate-strong-typed-navigation.html – Greg
Stocker cette liste dans un fichier XML séparé (ou resx) serait une bien meilleure idée. –