Réponse.Redirection à partir d'un projet web à un autre dans Visual Studio
Je cherche à intégrer un projet dans un pré-existant de la solution.
Le projet de start-up dans la solution est nommé "Toto." Il est écrit dans le chemin d'accès virtuel "/csweb/." Lorsque ce projet démarre, il charge /csweb/par Défaut.aspx. C'est l'actuel, non modifiée de la page d'accueil.
J'essaie de rediriger vers une autre page d'accueil dans un autre projet.
J'ai ajouté un deuxième projet à la solution nommée "Barre." En vertu de ses propriétés de projet je l'ai dit à écrire le chemin d'accès virtuel "/csweb/." Il n'est pas marqué que le projet de start-up, ni qu'il existe de multiples projets start-up -- Foo. Bar de la page d'accueil est accessible lorsque la Barre est marqué que le projet de start-up. C'est la page d'accueil est représenté par localhost:port/csweb/par Défaut.aspx
Je voudrais rediriger vers la Barre par Défaut.aspx pendant l'utilisation de Foo que le projet de start-up. Je suis fine avec le renommage de la Barre par Défaut.aspx pour quelque chose de non-ambiguë, pour le rendre plus facilement le problème.
Si j'essaie HttpContext.Response.Redirect("~/Default.aspx")
puis il a clairement me prend de Foo/par Défaut.aspx et pas de Bar/par Défaut.aspx, mais l'url dans le navigateur est juste localhost:port/csweb/Default.aspx
. Il n'y a aucune indication de l'être à l'intérieur d'un projet, tout à fait compréhensible. Si je renomme Bar/par Défaut.aspx pour Bar/UniqueName.aspx et tenter HttpContext.Response.Redirect("~/UniqueName.aspx")
puis la page est introuvable.
Ce qui est le droit d'appeler ici? Ai-je besoin de l'installation de la Barre comme un pré-existants répertoire virtuel dans IIS pour que je puisse spécifier de manière plus complète nom de chemin d'accès pour éviter toute ambiguïté? Ou dois-je faire quelque chose de fantaisie avec de multiples start-up de projets web afin qu'il soit accessible?
Merci pour tous les conseils sur ce sujet confus.
EDIT: j'ai juste ajouter un autre dossier de Foo du projet et de déplacer le contenu de la Barre de son projet de ce dossier. Je suis alors en mesure de faire HttpContext.Response.Redirect("~/Bar/Bar's Default.aspx")
j'avais encore envie d'écouter une meilleure solution que ce!
OriginalL'auteur Sean Anderson | 2011-04-14
Vous devez vous connecter pour publier un commentaire.
Essayer
HttpContext.Response.Redirect("/csweb/Default.aspx")
. Le tilde "~" dans votre redirection dit à démarrer dans la présente demande de dossier d'accueil. Par la suppression que vous pouvez les rediriger vers un autre emplacement sur votre site.Vous pouvez également qualifier complètement le rediriger de passer à un autre site si vous le souhaitez.
Hey, désolé, je ne peut pas lire votre OP assez attentivement la première fois. Donc, Foo page par défaut est /csweb/par Défaut.aspx. Où est la Barre de page alors? /csweb/bar/par Défaut.aspx? Il ne peut pas être dans le même dossier ou il serait plus écrit, non? Si c'est dans /csweb/bar/, puis ajouter /bar pour votre redirection.
Ainsi, la structure de répertoire à l'intérieur de Visual Studio est la Solution -> [ (Projet Foo) | Projet (Bar) ] avec plusieurs fichiers en dessous de chacun. Si je clic droit sur le Projet Foo, allez dans les propriétés, web, et spécifiez le chemin d'accès virtuel "/csweb/" il provoque Projet Foo pour démarrer comme localhost:port/csweb/Foo par Défaut de la Page. J'ai le Projet de la Barre du chemin d'accès virtuel de la même manière afin de conserver la structure de répertoire racine identique. Je m'attendais à être en mesure d'accéder à Projet de la Barre des fichiers d'une certaine façon, mais ne semble pas être en mesure de quand j'indique que le Projet de la Barre est le projet de start-up.
Ah, je crois que je commence à comprendre maintenant. Je suis juste utilisé à l'aide de IIS projets (de la vieille école). Vous êtes probablement à l'aide d'une Application Web de projet où il y a un petit "serveur web" icône dans votre barre d'état système. Est-ce exact? Si oui, chacun de vos projets est à partir de son propre mini serveur web, chacun avec son propre port (localhost:50001/csweb/...) où ma arbitraire 50001 est un numéro de port différent pour chaque projet. Si c'est le cas, je ne pense pas qu'ils vont jamais trouver les uns les autres. Si ce n'est pas le cas, alors nous allons discuter un peu plus.
Yep. C'est le cas.. et c'est un peu ce que je suis venu à la conclusion, en tant que bien. 🙂 Voir mon edit au dessus. Merci pour passer du temps à le regarder avec moi, je suis content que l'on est arrivé à la même conclusion.
OriginalL'auteur Jim