0

J'ai un site intranet ASP.NET 3.5 qui a une page par défaut avec un menu et lorsque l'utilisateur clique sur un élément de menu , J'affiche la page pour cet élément de menu dans un iframe incorporé dans la page par défaut. mais si l'utilisateur tape l'URL d'une page directement dans le navigateur, je voudrais le rediriger vers la page par défaut, car toutes les pages de contenu n'ont pas de menu. (Les pages maîtres résoudront ce problème, mais je ne peux pas utiliser la page principale ici pour une raison et je ne veux pas entrer dans ces détails). comment savoir si l'utilisateur est arrivé sur la page directement en tapant l'URL ou en cliquant sur l'élément de menu, afin que je puisse décider de rediriger ou non? Est-ce possible de le savoir? BTW c'est un site intranet et aucun login n'est requis. Merci d'avance.rediriger les utilisateurs vers la page par défaut (pas de connexion) si l'utilisateur accède directement à la page en tapant l'URL

+0

Mauvais design. Si vous ne pouvez pas utiliser une page maître, faites en sorte que les menus et les autres composants communs deviennent des contrôles utilisateur et ajoutez-les à la page. – epascarello

+0

J'utilise un contrôle de menu tiers qui s'effondre à la racine chaque fois que je navigue vers une page différente si j'utilise des pages maîtres. la fixation du contrôle de menu pour maintenir l'état n'est pas une tâche triviale et aussi je voulais cacher l'URL de la page réelle. Je peux utiliser le routage d'URL pour cela mais cela complique mon application simple. donc finalement j'ai décidé d'aller avec iframes. Je ne pense pas que l'ajout de menu à chaque page comme un contrôle de l'utilisateur est bon. Merci pour votre réponse. – RKP

Répondre

0

Vous devez utiliser MasterPages pour votre problème, beacuse iFrames ne sont pas une bonne technique. Mais, vous pouvez essayer avec un litte JavaScript Snippet dans les pages de contenu:

<script type="text/javascript"> 
if (top == self) 
    window.location = "/index.html"; 
</script> 

Vous consultez, si la page chargée est identique à votre iFrame. Si cela est vrai, votre iFrame est chargé directement. Pourquoi utiliser un iframe pour commencer?

+0

cela a fonctionné. Merci. toutes mes pages de contenu utilisent une page maître, donc j'ai mis ce code dans la page maître. Cependant, la page maître n'a pas de menu. menu est dans la page par défaut qui a un iframe et toutes les pages de contenu affichées dans iframe utilisent une page maître pour centraliser les fonctionnalités communes. Ce n'est pas une bonne conception, mais j'ai choisi cette technique pour corriger le problème du menu de réduction et cacher les URL. – RKP

1

mettre ceci dans votre cadre (ou la page principale du cadre):

<body onload="CheckTop()"></body> 

<script type="text/javascript"> 
    function CheckTop() 
    { 
     if (window == window.top) window.location = //topurl, pilot page 
    } 
</script> 
+0

merci pour la réponse, les deux réponses sont les mêmes et je ne peux pas marquer les deux comme réponse. – RKP