2010-09-30 15 views
1

J'ai une application Web Forms ASP.Net qui utilise les fonctionnalités de globalisation .Net pour fournir des pages .aspx dans différents paramètres régionaux. J'ai des erreurs personnalisées définies comme.Net defaultRedirect à la page d'erreur spécifique aux paramètres régionaux

<customErrors mode="RemoteOnly" defaultRedirect="Error.htm"> 

Je préfère utiliser une page non-.Net pour le defaultRedirect pour éviter les risques de boucles infinies, dans le cas où la page d'erreur se génère une erreur, donc je l'ai ciblé statique. page htm. Cependant, je voudrais rendre cette page dans les paramètres régionaux que l'utilisateur a initialement demandé, où les paramètres régionaux sont déterminés à partir d'une chaîne de requête.

Quelle est la meilleure façon d'y parvenir?

J'ai examiné ces options, mais je suis intéressé par les autres options:

  • Redirect à une autre application/domaine qui peut exécuter la logique côté serveur pour rediriger ou rendre une réponse spécifique aux paramètres régionaux (Semble
  • Utilisez le code côté client (JavaScript) pour afficher le contenu spécifique aux paramètres régionaux (ne fonctionne pas pour les navigateurs désactivés JavaScript, cependant, et je souhaite que cela fonctionne également pour ces utilisateurs)
  • message d'erreur de la page d'erreur statique en plusieurs langues - afficher tout le texte de la langue sur une page (je préfère ne montrer que le texte dans une langue, bien)

Répondre

1

Si la structure de votre fichier de projet a langage des dossiers spécifiques, une solution est de créer un web.config avec juste la section <customErrors /> spécifiée dans chaque dossier de langue

Exemple de projet Structure

  • App_Code
  • ...
  • en-us
    • ...
    • web.config
  • fr-fr
    • ...
    • web.config
  • zh-cn
    • ...
    • web.config
  • ...
  • Default.aspx
  • web.config
0

si vous pouvez créer une page dynamique pour obtenir des informations d'erreur, en prenant soin de la localisation et d'autres choses, je pense que c'est la meilleure façon.

Vous pouvez gérer les erreurs sur global.asax notre développement de votre propre httpmodule (les deux façons sont valides), vous pouvez gérer les erreurs d'application par un moyen génial et dynamique, en prenant le contrôle de tous les processus.

notamment de déterminer la langue actuelle pour décider d'une éventuelle redirection, ou par exemple afficher différents messages concernant différents types d'erreurs. À mon avis je commence à résoudre un problème avec une solution qui me donne la flexibilité de décider comment je peux gérer dans différents cas.