Comment un itinéraire .page aspx dans asp.net mvc 3 projet?
J'ai un .page aspx dans le chemin d'accès suivant:
Areas/Management/Views/Ticket/Report.aspx
Je veux la route que le chemin d'accès suivant dans mon navigateur:
http://localhost/Reports/Tickets
Comment puis-je le faire?
J'ai essayer ceci:
routes.MapRoute(
"Tickets", //Route name
"Areas/Management/Views/Ticket/Report.aspx", //Original URL
new { controller = "Reports", action = "Tickets" } //New URL
);
Mais j'ai eu l' 404
erreur.
Ce que je fais mal?
Obs: je l'ai mis avant le Default
route.
Est votre .page aspx, un web formulaires page aspx ou un mvc webforms moteur d'affichage de la page?
Est un .page aspx.
Que vous pouvez avoir .aspx vues qui utilisent les formulaires web moteur d'affichage, vous pouvez avoir .aspx formulaires web. Je soupçonne que vous essayez d'obtenir un hybride de formulaires web et mvc pour le travail, mais il n'est pas clair (pour moi au moins) qui vous essayez d'atteindre.
Je suis en train d'utiliser un crystal reports dans mon asp.net projet mvc. Et je suis en train d'utiliser un ReportViewer qui fonctionne uniquement (avec des fonctionnalités complètes) dans les formulaires web. Alors, maintenant, je veux seulement la route .page aspx qui a ReportViewer comme mvc vues (sans .aspx à la fin de l'URL).
Est un .page aspx.
Que vous pouvez avoir .aspx vues qui utilisent les formulaires web moteur d'affichage, vous pouvez avoir .aspx formulaires web. Je soupçonne que vous essayez d'obtenir un hybride de formulaires web et mvc pour le travail, mais il n'est pas clair (pour moi au moins) qui vous essayez d'atteindre.
Je suis en train d'utiliser un crystal reports dans mon asp.net projet mvc. Et je suis en train d'utiliser un ReportViewer qui fonctionne uniquement (avec des fonctionnalités complètes) dans les formulaires web. Alors, maintenant, je veux seulement la route .page aspx qui a ReportViewer comme mvc vues (sans .aspx à la fin de l'URL).
OriginalL'auteur Vinicius Ottoni | 2012-04-16
Vous devez vous connecter pour publier un commentaire.
Si vous essayez d'utiliser des formulaires web en un projet MVC, alors je voudrais déplacer votre .aspx hors de la vue du dossier, qu'il n'est pas vraiment un point de vue, donc, quelque chose comme WebForms/Tickets/Rapport.aspx.
Dans les formulaires web vous carte une route en appelant le
MapPageRoute
méthode.Vous aurez besoin de placer avant le défaut MVC route.
C'est à la correspondance de la route par défaut à une supposition, la ligne ci-dessus doit être directement après la
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
ligneJe l'ai mis directement après la
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
et j'ai eu la même url. =/Je l'ai juste essayé dans un nouveau projet mvc et qui fonctionne très bien pour moi. Allez-vous mettre
/Reports/Tickets
directement dans votre navigateur ou en cliquant sur un lien sur une autre page?Merci pour votre suggestion.
OriginalL'auteur
Résolu! Donc, nous avons besoin d'ajouter une route contrainte pour les formulaires route afin de s'assurer qu'il ne se coince sur les routes entrantes, pas de route sortante génération.
Ajouter la classe suivante à votre projet (que ce soit dans un nouveau fichier ou le fond global.asax.cs):
Puis changer les Billets pour l'itinéraire suivant:
Je suis Vecthor. @JabberwockyDecompiler
Hmm, je ne sais pas pourquoi je l'ai mis, avez-vous changer votre nom?
J'ai posé la même question il y a, donc, avec la réponse de CodeHobo je l'ai mis ici. "Je suis Vecthor". Il n'est qu'un alias de nom de code, quelque chose comme ça ^^.
Mes amis m'appellent Jabber 😀 haha, en fait, je vais par TJ.
OriginalL'auteur
vous font face. cette cartes votre url
Areas/Management/Views/Ticket/Report.aspx
à {controller = "Reports", action = "Tickets" }
ce que tu devrais faire à la place est
définir l'url comme
Reports/Tickets
EDIT:- vous pouvez créer un routeHandler juste pour le routage .page aspx.. comme celui-ci.
alors u peut ajouter ur la route pour les routes existantes table à l'aide
Reports/Tickets
la façon dont le site 'll chemin vers ma page aspx?ull avez qu'à faire un gestionnaire d'itinéraire.. actuellement ur url est arriver mappés à des Rapports/Billets qui obsly dosent existe.. et donc ur obtenir 404. essayer de retourner une chaîne de "Rapports/Billets" et ull de voir où u r mal
Mec, je ne veux pas voir que je me trompe. "Je suis mal", ok, je sais (c'est parce que je suis ici ^^), maintenant je sais comment résoudre mon problème. =) Un code, un exemple, un lien...
Ce que j'ai à mettre en
defaults
? Et dansnew CustomRouteHandler()
vous voulez direnew ASPXRouteHandler()
, droit?Quand je lance le projet le navigateur redirige vers la folling url "localhost:37538/Rapports/...". Oo
OriginalL'auteur
si vous laissez le routage par défaut lorsque vous créez le asp.net projet
cela devrait faire l'affaire.
Le routage dans asp.net mvc signifie que vous n'avez pas un lien direct avec .aspx, mais à des Actions (méthodes) qui, à son tour retourner une vue appropriée (.aspx)
Non ça va pas. Avez-vous réellement testé, (avec moi)? En fait, j'ai corrigé le code de sorte qu'il sera de retour localhost/Rapports/Billets
si vous essayez d'utiliser crystal reports, alors vous devriez consulter cette réponse stackoverflow.com/questions/348785/...
Je l'ai vu. La page fonctionne (j'ai testé dans un autre projet), mon problème est maintenant seule voie dans asp.net projet mvc.
Est votre problème vraiment dans MVC, à partir de ce que j'ai recueillies à partir de vos commentaires précédents vous ont webform faire de l'affichage, de sorte que peut-être ce dont vous avez besoin est le IIS module de réécriture d'url pour prendre de cette page spécifique. learn.iis.net/page.aspx/461/..., ou vous avez un contrôleur pour gérer la demande avant de l'envoyer à votre avis?
OriginalL'auteur