2010-09-04 4 views
0

S'il vous plaît trouverez ci-dessous mon ActionResult Index:Index ActionResult retourne 404

public ActionResult Index(string SectionText) 
{ 

    var products = from p in db.Products 
        where p.CategoryID == SectionText 
        //orderby gs.SortBy 
        select p; 

    return View(products.ToList()); 
} 

Ce jette l'erreur ci-dessous: -

Erreur du serveur dans l'application '/'.

La ressource est introuvable.

Description: HTTP 404. La ressource que vous recherchez (ou une de ses dépendances ) aurait pu être enlevé, son nom a changé, 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: /Sections/daughterboards-894/

Toutes les idées seraient très appréciés. C'est en utilisant le serveur Web intégré.

Merci

Répondre

0

Eh bien vous demandez /Sections/daughterboards-894 et il n'y a rien qui concernerait cette URL pour l'action Index. Si vous utilisez les routes par défaut de votre demande devrait ressembler à ceci: /sections/index/daughterboards-894

Bien sûr, cela suppose que vous avez une route capable de gérer cette URL:

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{SectionText}", 
    new { 
     controller = "Home", 
     action = "Index", 
     SectionText = UrlParameter.Optional 
    } 
); 

Si vous voulez avoir une URL comme /Sections/daughterboards-894/ vous devrez définir un itinéraire spécial pour elle:

routes.MapRoute(
    "MySpecialUrl", 
    "Sections/{SectionText}", 
    new { 
     controller = "Sections", 
     action = "Index", 
     SectionText = UrlParameter.Optional 
    } 
); 

Remarque: Comme une note de côté, je vous recommande abstraire votre accès aux données dans un référentiel au lieu d'accéder directement dans vos contrôleurs. Cela rendra votre code beaucoup plus facile à tester unitaire.

+0

Merci j'ai ajouté l'itinéraire mais cela n'a pas eu l'effet désiré et je reçois toujours la même erreur – ashga

+0

Juste une mise à jour ce lien fonctionne ici mais si je supprime l'index il doesnt. cependant Index est specifield comme l'option par défaut http: // localhost: 21063/Sections/Index/pare-feu-matériel-832 - fonctionne http: // localhost: 21063/Sections/firewalls-hardware-832 - ne fonctionne pas .. – ashga

+0

Merci je l'ai trouvé sur la nouvelle route fonctionne mais je devais le mettre avant l'erreur par défaut de l'écolier route! – ashga

Questions connexes