[ASP.NET MVC3] URL routing werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bv202
  • Registratie: Oktober 2006
  • Laatst online: 14-11-2021
Hey,

Ik heb de volgende RegisterRoutes-methode:
C#:
1
2
3
4
5
6
7
8
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(null, "", new { controller = "News", action = "Index" });
            routes.MapRoute(null, "page/{id}/{title}", new { controller = "Page", action = "Page" });
            routes.MapRoute("Default", "{controller}/{action}/{id}", new { id = UrlParameter.Optional });
        }


De tweede mapRoute-regel zou ervoor moeten zorgen dat een URL zoals http://www.website.com/page/3/testpagina moet werken. Ik heb deze methode in de PageController:
C#:
1
2
3
4
5
        [HttpGet]
        public ViewResult Page(int id, string title)
        {
            return View(pageRepository.GetAll().First(page => page.PageID == id));
        }


Maar toch geeft een URL zoals bovenstaande een 404. Als ik de onderste MapRoute-call weghaal, krijg ik echter geen 404 meer, waardoor ik veronderstel dat deze regel de bovenstaande overschrijft (wat niet zou mogen, want normaal gezien zou de eerste match genomen moeten worden 8)7 ). Maar die regel kan uiteraard niet weggehaald worden, want dan werken een hoop andere URL's niet meer.

Op Stack Overflow kan blijkbaar niemand me niet verder helpen, dus op dit moment zit ik vast. Iemand een idee waarom deze URL routing niet werkt?

Bedankt

Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 29-09 14:10
Probeer dit eens

C#:
1
2
3
4
5
..
routes.MapRoute(null, 
   "page/{id}/{title}", 
   new { controller = "Page", action = "Page", title = UrlParameter.Optional }); 
..


Let op: Dit kun je alleen doen bij nullable types. Dus als je een int parameter als Optional aanmerkt ga je exceptions krijgen op t moment dat je die controller probeert aan te roepen zonder die parameter.

[ Voor 41% gewijzigd door D-Raven op 20-04-2012 18:18 ]


Acties:
  • 0 Henk 'm!

  • Bv202
  • Registratie: Oktober 2006
  • Laatst online: 14-11-2021
Die had ik ook al geprobeerd, ook daarmee krijg ik gewoon een 404.

EDIT:
Ik denk dat ik het probleem heb gevonden.. om een of andere reden staan er een hoop spaties achter die titel :X

[ Voor 48% gewijzigd door Bv202 op 20-04-2012 18:20 ]


Acties:
  • 0 Henk 'm!

  • D-Raven
  • Registratie: November 2001
  • Laatst online: 29-09 14:10
Verander de naam van je action eens en geef de route een naam.
Maar als dat nog niet werkt dan zit het ergens anders.

Waar draai je op? Welke iis versie? Welk OS? Heb je een standaard web.config file of je heb je dingen aangepast?

Begin anders een bij een standaard MVC project, en ga van daaruit dingen aanpassen en renamen, dan loop je wellicht vanzelf tegen t probleem aan.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Bv202 schreef op vrijdag 20 april 2012 @ 18:17:
Ik denk dat ik het probleem heb gevonden.. om een of andere reden staan er een hoop spaties achter die titel :X
Just a hunch, gut-feel, iets aan m'n water... Toevallig een char i.p.v. varchar gebruikt in de DB?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Bv202
  • Registratie: Oktober 2006
  • Laatst online: 14-11-2021
RobIII schreef op vrijdag 20 april 2012 @ 18:35:
[...]

Just a hunch, gut-feel, iets aan m'n water... Toevallig een char i.p.v. varchar gebruikt in de DB?
Zucht... je hebt gelijk. Blijkbaar heb ik overal varchar gebruikt, buiten bij dat ene veld 8)7

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Booyah! :Y)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1