2010-10-05 5 views
0

J'affiche une adresse pour un utilisateur sur une page ASP.Net en utilisant une étiquette. Les nouvelles lignes sont converties à partirEnvironment.NewLine renvoie parfois n Linefeed au lieu de r n Retour chariot, saut de ligne

Environment.NewLine 

à

<br /> 

Si un utilisateur modifie l'adresse, l'adresse est affichée dans une zone de texte et la

<br /> 

est remplacé par

Environment.NewLine 

Donc metimes l'adresse enregistrée dans la base de données n'a que le saut de ligne. Étant donné la fréquence à laquelle cela se produit, il semble que cela puisse se produire pour les utilisateurs Linux ou OSX.

Est-ce que Environment.NewLine renvoie la nouvelle valeur de ligne du navigateur du client ou du serveur, ou est-ce autre chose?

+0

Où êtes-vous appelez 'Environment.NewLine'? Code client (silverlight)? Ou le code du serveur? Tous les deux? – Oded

+0

@Ouvert il est seulement appelé côté serveur, aucun code silverlight, ajax ou côté client n'est utilisé pour cette section. – TheLukeMcCarthy

Répondre

3

Non, Environment.NewLine renvoie ce qui est sur votre serveur (parce que c'est là où il est en cours d'exécution). Il est tout à fait possible qu'un navigateur fonctionnant sous Unix soumette des données avec juste "\ n" au lieu de "\ r \ n" comme saut de ligne. Il semble que vous devriez normaliser les données avant de les sauvegarder dans la base de données. Ensuite, vous savez que vous pouvez effectuer le remplacement à <br /> en toute sécurité à des fins d'affichage.

(je suppose que votre serveur est en cours d'exécution sur Windows, et que c'est là tous votre code est - à savoir qu'il n'y a pas Silverlight etc impliqué.)

+0

ne serait pas mono/moonlight sur linux/mac retourner '\ n' pour' Environment.NewLine'? – Oded

+0

@Oded: Ils le feraient si le code était en cours d'exécution, mais il semble plus probable qu'il s'agisse de navigateurs Linux qui parlent à un serveur Windows. –

+0

@Oded pour être clair, j'utilise Windows 2003 et IIS – TheLukeMcCarthy

Questions connexes