2010-10-03 5 views
0

Je dois avouer à l'avance que je suis assez nouveau à MVC, j'ai parcouru les ressources à www.asp.net/mvc, mais je me demandais si vous les gars pourraient m'aider avec quelque chose.Question sur le routage personnalisé dans ASP.NET MVC

On m'a demandé de créer une version ASP.NET d'un site Web PHP existant, ce site contient un grand nombre de liens existants dans un format particulier, que je dois répliquer en raison de la quantité de travail à effectuer. changer tous les liens existants serait beaucoup trop.

Le format des liens existants est;

/([A-Za-z0-9]{14})/([A-Za-z0-9_-]*) 

Ma tentative de création d'une route personnalisée ne semble pas fonctionner. Ce que j'ai fait est de changer la méthode RegisterRoutes dans le fichier Global.asax.cs pour être; J'ai également créé le 'ExistingLinkController' avec une action 'Index' de;

public ActionResult Index(string LinkId, string Title) 
{ 
    ViewData["LinkId"] = LinkId; 
    ViewData["Title"] = Title; 
    return View(); 
} 

et une vue qui contient le code;

<h2>LinkId: <%: ViewData["LinkId"] %> 
</h2>Title: <%: ViewData["Title"] %></h2> 

Mais quand j'essaie d'aller à;

/55a3ef90c4b709/this-is-just-a-test_0-9

je reçois l'erreur suivante;

Description: HTTP 404. La ressource que vous recherchez (ou une de ses dépendances ) aurait pu être enlevé, a changé de nom, ou est temporairement indisponible. S'il vous plaît examiner l'URL suivante et assurez-vous que qu'il est orthographié correctement.

URL demandée: /55a3ef90c4b709/this-is-just-a-test_0-9

je me demandais si quelqu'un peut voir ce que je fais de mal et peut-être me diriger dans la bonne direction, peut-être En montrant le code qui est faux si c'est un problème simple ou en me pointant vers un article qui m'aidera à mieux comprendre si j'ai la mauvaise extrémité du bâton avec ce truc de routage.

Merci pour toute aide à l'avance

Satal: D

Répondre

3

Je pense que ceci:

new {controller="ExistingLinkController", action="Index"}, 

doit être juste ceci:

new {controller="ExistingLink", action="Index"}, 

MVC ajoute la partie de contrôleur de le nom lui-même - Dans la deuxième route le contrôleur est également appelé HomeController, mais vous seulement e nter "Home" comme valeur par défaut pour l'argument du contrôleur.

+0

Parfait merci, je savais que ce serait probablement quelque chose de simple que je ne pourrais pas » t voir en raison du manque d'expérience: D – Satal