Je souhaite rediriger vers un itinéraire, mais spécifiez également l'action à exécuter sur le contrôleur de ce itinéraire.
J'ai essayé ceci: p> L'action ressemble à ceci: p> L'itinéraire ressemble à ceci: p> L'erreur que je reçois est: p> système .NotimplementedException: la méthode ou l'opération n'est pas implémentée. P> Pouvez-vous voir ce que je fais mal? P> p>
3 Réponses :
Eh bien, vous obtenez uniquement notimplementaedException code> quand quelque chose le jette. Alors regardez la trace de la pile (pile d'appels) et trouvez la routine qui l'a jeté. Lorsque VS implémente automatiquement une interface, par exemple, le corps jettera ceci; Vous êtes censé remplacer la mise en œuvre. P>
Ceci est le haut de la pile: à System.web.httpresponsebase.redirectToroute (chaîne routename, objet routévalues) sur mvcapp.controls.logincontroller.ecteur de chaîne, mot de passe de chaîne) dans c: \ dev \ aspenmvctemplate \ src \ main MVCAPP \ MVCApp \ Controlers \ l ogincontroller.cs: LI NE 110
Non, RedirectToroute code> ne jettera pas ceci. Mais la chose que
redirecttoroute code> provoque finalement être appelée i> (par exemple, une fonction appelée par votre action). Essayez d'examiner une pile sur n'importe quel
InnerException code> vous pourriez avoir.
Je ne crois pas que l'action est jamais appelée parce que je peux aller manuellement l'URL pour l'action et son amende. Je pense que le problème est avec mon appel à RedirectToroute (). Je pense que cela ne trouve pas l'itinéraire ou quelque chose. Je ne comprends tout simplement pas pourquoi. L'action elle-même fonctionne parfaite. Le resseredirect est où je suis confus.
RedirectToroute code> ne jette pas (directement) aucune exception du tout. Je viens de regarder dans le code source MVC pour confirmer ceci. Une autre fonction lance cette exception.
@qntmfred Oui, il fait un cas assez convaincant qui est un bug.
Moi aussi j'ai eu du mal avec ça. J'ai fait ceci
Toute façon d'accéder à cette méthode pas dans un contrôleur?
@Shimmy où voulez-vous y accéder?
Application_Error Code>. Il est évidemment possible de créer une nouvelle instance, question si une instance statique existe n'importe où.
Vous pouvez utiliser urlhelper.generérerr () code> méthode. Pour obtenir demandeContext, vous pouvez écrire
((mvchandler) httpcontext.current.handler) .RequestContext code>
Ouais, mais je veux utiliser nouveau {} code> pour définir les itinéraires.
Que diriez-vous de créer une nouvelle instance de urlhelper code> en passant le
requierContext code> dans son constructeur et utilisez la méthode de la route
C'est ce que j'ai fait ... merci!
Les hommes que vous enregistrez ma journée (y)
return Redirect(Url.RouteUrl(new { controller = "Controller", action = "Action" }));
Cette réponse est une duplication exacte de Ceci un, qui a été publié précédemment.
C'est un Bug dans MVC3. @ La solution d'Ajay_whiz a travaillé pour moi.