as expected this does not work - i cannot simply inject parameters that way. I try to analyze PatternRoute to see, where some matching <> or [] parameter is somehow passed on somewhere. But I think this is not happening there. The route just matches and creates an Url. During the Match()ing the RouteMatch |Params get filled with something and probably picked up on the Controller/Action side.
So in my case the Match.Params receive nothing, because I have no parameter in the pattern. I will try to subclass PatternRoute and add parameters 'manually' there... 2009/11/18 Jan Limpens <[email protected]> > so if i have a custom routing defined by a xml file like this: > > <route matches="/artigos-para-meninos-de-todos-tamanhos" > controller="Articles" action="ListByCategory"> > <params> > <param patternPart="key" value="para-meninos"/> > </params> > </route> > > this should get me there? (i have not tried it yet, but it seems a bit > suspicious to me... the fact that i have no namedPatternparts) > > prototype code: > > private static IRoutingRule makeRoute(XElement xElement) > { > var controllerAttr = xElement.Attribute("controller"); > var controllerType = controllerAttr != null ? > controllerAttr.Value : null; > var actionAttr = xElement.Attribute("action"); > var action = actionAttr != null ? actionAttr.Value : null; > var patternAttr = xElement.Attribute("pattern"); > var pattern = patternAttr != null ? > patternAttr.Value.Replace('{', '<').Replace('}', '>') : null; > var route = new PatternRoute(pattern) > .DefaultForAction().Is(action) > .DefaultForController().Is(controllerType); > var paramElements = xElement.Descendants().Where(e => > e.NodeType == XmlNodeType.Element && e.Name == "params").ToList(); > if (paramElements.IsNullOrEmpty()) > return route; > foreach (var paramElement in paramElements) > { > var attrs = new[] { paramElement.Attribute("patternPart"), > paramElement.Attribute("value") }; > if (attrs.Any(e => e == null)) > continue; > route.DefaultFor(attrs[0].Value).Is(attrs[1].Value); > } > return route; > } > > > 2009/11/13 Ken Egozi <[email protected]> > > try Default.For(Whichever).Is(Whatever) >> >> On Fri, Nov 13, 2009 at 12:56 AM, Jan Limpens <[email protected]>wrote: >> >>> but how do I pass a parameter to the action, then? >>> >>> 2009/11/10 hammett <[email protected]> >>> >>>> Hmm.. IIRC if you dont specify a pattern to a PatternRoute, all route >>>> nodes will be required, so you'll achieve exactly what your boss wants. >>>> >>>> On Mon, Nov 9, 2009 at 2:50 PM, Jan Limpens <[email protected]>wrote: >>>> >>>>> Hello! >>>>> >>>>> for my FooController/BarAction(string val) I have this routing: >>>>> >>>>> "/foo/bard/<val>" >>>>> >>>>> Now my boss enters and tells me: "For the val 'xyz', I want this other >>>>> routing '/my-wonderful-routing-for-xyz' and for 'abc', I want >>>>> '/this-is-a-nice-abc', the rest is nice the way it is." >>>>> >>>>> And I have no good idea how to implement this easily. I miss a way in >>>>> PatternRoute to pass in a parameter and this makes sense - because it is a >>>>> PatternRoute it expects a pattern, not something concrete. Is there an >>>>> easy >>>>> way to implement something like a ConcreteRule, or do I have to do this >>>>> all >>>>> by myself? >>>>> >>>>> -- >>>>> Jan >>>>> >>>>> --~--~---------~--~----~------------~-------~--~----~ >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Castle Project Users" group. >>>>> To post to this group, send email to >>>>> [email protected] >>>>> To unsubscribe from this group, send email to >>>>> [email protected]<castle-project-users%[email protected]> >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/castle-project-users?hl=en >>>>> -~----------~----~----~----~------~----~------~--~--- >>>>> >>>>> >>>> >>>> >>>> -- >>>> Cheers, >>>> hammett >>>> http://hammett.castleproject.org/ >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Castle Project Users" group. >>>> To post to this group, send email to >>>> [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<castle-project-users%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/castle-project-users?hl=. >>>> >>> >>> >>> >>> -- >>> Jan >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Castle Project Users" group. >>> To post to this group, send email to >>> [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<castle-project-users%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/castle-project-users?hl=. >>> >> >> >> >> -- >> Ken Egozi. >> http://www.kenegozi.com/blog >> http://www.delver.com >> http://www.musicglue.com >> http://www.castleproject.org >> http://www.idcc.co.il - הכנס הקהילתי הראשון למפתחי דוטנט - בואו בהמוניכם >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Castle Project Users" group. >> To post to this group, send email to >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<castle-project-users%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/castle-project-users?hl=. >> > > > > -- > Jan > -- Jan -- You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en.
