Now I'm closer to a real solution see changes: > public static void Register(IRoutingRuleContainer rules) > { rules.Add(new PatternRoute("/<controller>/<name>/<id>/ <action>.ashx") .DefaultForArea().IsEmpty .DefaultForAction().Is("searchresult") .Restrict("id").ValidInteger); }
in view #foreach($Product in $Products) > <li>$Url.Link($Product.Name, "%{controller='products', > action='searchresult', > querystring='productId=$Product.Id,params={id=$Product.Id, > name=$Product.Name}}")</ > li> > #end The resulted url: .../specials/myproduct/11/searchresult.ashx?productId=11 However I want the url to appear as such .../specials/myproduct/11/ How can I do this? thanks eyal On Feb 10, 4:43 pm, eyal <ebarda...@gmail.com> wrote: > I looked into your suggestions and that is what I decided to do: > #foreach($Product in $Products) > <li>$Url.Link($Product.Name, "%{controller='products', > action='searchresult', params={id=$Product.Id, name=$Product.Name}}")</ > li> > #end > > public static void Register(IRoutingRuleContainer rules) > { > rules.Add(new PatternRoute("/products/productId/ > searchresult.ashx") > .DefaultForArea().IsEmpty > .DefaultForAction().Is("searchresult")); > > } > > When I click on the generated link I get the following error within > the BaseHttpHandler.cs in func. Process(HttpContext context): > " ex = {Unable to evaluate expression because the code is optimized or > a native frame is on top of the call stack.}" > > Any idea why? > > thanks > > Eyal > > On Feb 10, 3:06 pm, Jimmy Shimizu <jimmy.shim...@gmail.com> wrote: > > > the UrlHelper will be able to generate urls if you have a matching > > rule for it. > > > $Url.For("%{controller='product', action='view', > > params={name='ProductName'}}") would generate a URL if you have a > > valid route, I guess like this: > > > RoutingModuleEx.Engine.Add( > > new PatternRoute("/<controller>/<name>") > > .DefaultForAction().Is("view")); > > > You can add restrictions for it if you like. > > > This would make: > > > /product/ProductName > > > call ProductController, on action View(string name) where name = > > 'ProductName'. > > > You would need to internally map 'ProductName' to the approriate id in > > your action aswell as use the correct ProductName in your UrlHelper in > > the view. > > > I would however combine productname with the id instead, like this: > > > /product/15/product-name > > > so that I would get 15 in my view, without the need for any mapping. > > This however needs another route than the one I supplied. > > > Hope this helps. > > > On 10 feb 2009, at 22:22, eyal wrote: > > > > Hi All, > > > > I am interested in re-writing some of my urls to make them url > > > friendly. I found this > > > bloghttp://using.castleproject.org/display/MR/Routing+Overview > > > > My agenda is to convert the following: > > > .../controllerName/searchresult.ashx?categoryId=23 > > > > into > > > > .../controllerName/categoryName > > > > where each categoryId is associated with a Category Name > > > > Also I am not sure how to associate the two following code snippets > > > found on blog: > > > Code: > > > > RoutingModuleEx.Engine.Add( > > > new PatternRoute("/<controller>/<name>/<id>/view.aspx") > > > .DefaultForAction().Is("view") > > > .Restrict("id").ValidInteger > > > ); > > > > I found that just by using the $UrlLink(... on my view I can re-write > > > a url. But the url is not initially generated into the browser's url > > > address. Instead it appears as a hyper link on the page. Once clicked > > > only then it will re-write the url address in the browser - that is > > > useless to me. What am I missing here? > > > > Code: > > > > $Url.Link('Product Name', "%{controller='product', action='view', > > > params={id=15, name='ProductName'}}") > > > > Thanks > > > > Eyal --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to castle-project-users@googlegroups.com To unsubscribe from this group, send email to castle-project-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en -~----------~----~----~----~------~----~------~--~---