Avatar billede jps6kb Novice
28. august 2009 - 22:02 Der er 5 kommentarer og
1 løsning

MVC Route til "Resouce not found"

Hey med jer,

Jeg har siddet og svedt over følgende og håber i har en løsning:

Jeg har forsøgt at dække mig ind, route-mæssigt, så folk der skriver en forkert url kommer ind på en "Arh, den side findes ikke"-side.

Det virker fint med alm. exceptions ... og jeg har sat customErrors til On, og lavet min Error.aspx.

Men! Hvis jeg nu har en route der kan udtrykkes ved http://www.minside.dk/Produkt/Traktor ... så kan jeg ikke fange hvis folk skriver f.eks.
http://www.minside.dk/Produkt/Traktor/Muh

Der er ikke en route der kan håndtere en ekstra parameter så jeg får bare en .NET fejlside... what to do?
Avatar billede windcape Praktikant
30. august 2009 - 23:14 #1
Så vidt jeg husker bliver det da automatisk mappet til følgende View:

Views\Shared\Error.aspx

Som så typisk vil have indhold ala. følgende:


<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<System.Web.Mvc.HandleErrorInfo>" %>

<asp:Content ID="Title" ContentPlaceHolderID="TitleContent" runat="server">
    Error
</asp:Content>

<asp:Content ID="errorContent" ContentPlaceHolderID="MainContent" runat="server">
  <h2>Error!</h2>
</asp:Content>
Avatar billede windcape Praktikant
30. august 2009 - 23:16 #2
Ellers er der også HandleUnknownAction override for Controller.

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.handleunknownaction.aspx
Avatar billede jps6kb Novice
31. august 2009 - 09:12 #3
Det er rigtigt... men hverken det ene eller det andet virker på det specifikke problem.

Jeg kan sagtens fange exceptions, hvis jeg f.eks. i en controller kaster en ny exception.
Men den eneste måde jeg har fundet, hvor jeg kan forebygge at folk "bygger videre" på min url, er at lave routes for det.
Altså, f.eks. en route der fanger: http://www.minside.dk/Produkt/Traktor/Muh <-- selvom mit site aldrig ville generere en parameter efter produkt = traktor.
Jeg skal så lave en route der håndterer http://www.minside.dk/Produkt/Traktor/Muh/MuhIgen også... og så kan man jo blive ved. :/
Avatar billede windcape Praktikant
31. august 2009 - 16:45 #4
>> Der er ikke en route der kan håndtere en ekstra parameter
>> så jeg får bare en .NET fejlside... what to do?

Umidbart burde overstående løsninger virke, så du er nød til at fortælle præcist hvilke fejlmeddelser du får.

Jeg tror du gør noget forkert et andet sted, da jeg personligt aldrig har haft problemer med default mapping til et ErrorView.
Avatar billede jps6kb Novice
22. november 2010 - 17:13 #5
Smider du svar?
Avatar billede jps6kb Novice
27. februar 2011 - 15:32 #6
x
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Udvikler til procesapplikationer

Pharma Nord

PHP backend-udvikler

Euronext Securities

Software Developer

Udviklings- og Forenklingsstyrelsen

Udbudsjurist til Danmarks største IT-udbud