How To Use System.Web.Routing To Not URL Rewrite In Web Forms
Jan 12, 2010
I am using System.Web.Routing with ASP.NET (3.5) Web Forms that will URL rewrite the following URL from
http://www.myurl.com/campaign/abc
http://www.myurl.com/default.aspx?campaign=abc
The code is as below:
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add("CampaignRoute", new Route
(
"{campaign_code}",
new CustomRouteHandler("~/default.aspx")
));
}
IRouteHandler implementation:
public class CustomRouteHandler : IRouteHandler
{
public CustomRouteHandler(string virtualPath)
{
VirtualPath = virtualPath;
}
public string VirtualPath { get; private set; }
public IHttpHandler GetHttpHandler(RequestContext
requestContext)
{
if (requestContext.RouteData.Values.ContainsKey("campaign_code"))
{
var code = requestContext.RouteData.Values["campaign_code"].ToString();
HttpContext.Current.RewritePath(
string.Concat(
VirtualPath,
"?campaign=" + code));
}
var page = BuildManager.CreateInstanceFromVirtualPath
(VirtualPath, typeof(Page)) as IHttpHandler;
return page;
}
However I noticed there are too many things to change on my existing aspx pages (i.e. links to javascript, links to css files).
So I am thinking if there's a way to keep above code but in the end rather than a rewrite just do a Request.Redirect or Server.Transfer to minimize the changes needed. So the purpose of using System.Web.Routing becomes solely for URL friendly on the first entry.How to ignore the rest of the patterns other than specificed in the code?
ASP.NET 3.5 SP1 with Web Forms Routing thru Global.asax (System.Web.Routing and RegisterRoutes)IIS 7
Everything is working fine in my local machine, but it gives the following error in my hosting environment:
Could not load file or assembly 'System.Web.Routing, Version=3.5.0.0, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
I did everything inside my web.config file mentioned in the following link:
I am using ASP.NET 2.0 on IIS6 therefore I can't use system.web.routing. I've tried a few URL rewriters but none did what I wanted.I basically need to transform (read/parse then redirect) URL 1 into 2 with minimum IIS configuration because I don't have the full authority to reconfigure web servers (i.e. ISAP on IIS6 or install 3rd party extensions/libraries). And I can't transform URL into 3 because all the physical links will break. [URL]
I want to "alias" a single web form to appear as various extensionless urls. Given a form in my web root called "mySite.com/ColorWebForm456.aspx":
I want it served as multiple names, e.g., mySite.com/Color, mySite.com/Colour, mySite.com/Colors, mySite.com/Coler, etc., without creating folders and duplicate forms with those names.I never want mySite.com/ColorWebForm456.aspx displayed in the browser, it needs to display as mySite.com/Color, even if the user somehow acquires it and types in that exact ~.aspx address. The variations will account for several alternate or mis-spellings users might attempt - I don't want them "corrected", however. So, if a user types in mySite.com/Colour, the url is NOT rewritten to mySite.com/Color, but the same page is served via ColorWebForm456.aspx as the requested "mySite.com/Colour".
I've seen so many articles on this that I'm not even sure where this would be best handled: in Global.asax, IIS7 URL Rewrite, web.config, etc., and I'm not even sure this is technically a case of url rewriting or routing... ?
I have implemented my own IRouteHandler for URL routing. For files without extension it will try to load the filename as a Page from the Pages directory with:
Hopefully I am just overlooking something incredibly simple, if so I apologize....I have an ASP.NET application in .NET4 and we're trying to use URL rewriting using
For some reason intellisense is returning an error which says that <rewrite> is not a valid child element of <system.webserver>When I build it and run it, it says something akin to "Error at line 0 in web.config"If I remove all the <rewrite> lines it works properly (but of course no rewriting)Is there a switch I need to flip on or something? It has to be something I'm stupidly overlooking....
I'm trying to fix conical format violation for SEO but when I add <rewrite> to the <system.webServer> sectionI get this error the element system.webServer has invalid child element rewrite I've tried this by adding a rule withhe admin tool in IIS 7 and I've tried adding it directly into the web.config file in a 3.5 and 4.0 frameworksand I also tried it with VS 2010 pro and VS 2008 pro I can't find where I missed a step all the blogs and tutorials just show how to add this to the web.config file I haven't been able to find out how to add this element to system.webServer
I've sucefully runned it in my local server (Windows Server 2003 Standart) but after tried several times upload it to my hosting, it never works. The web hosting company told first that they didn't had System.Web.Routing.dll installed (but they said that they've .NET 3.5 installed..), then i've copied the dll to Bin folder and again with no sucess. Can someone give me a very basic example of and website using System.Web.Routing.dll so i can do the "final" test on webhost before i go to the company because they say that they have 3.5 installed but i'm starting to see that they didn't have? If possible, is there another way to test if this dll is installed in web hosting? (test all .dll running for example)
When I try to use Routes in new ASp.Net WebaPplication using .Net framowork 3.5
Line 7: Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs) Line 8: ' Code that runs on application startup Line 9: RegisterRoutes(RouteTable.Routes)
I encounter Error: Warning: BC40056: Namespace or type specified in the Imports 'System.Web.Routing' doesn't contain any public member or cannot be found. Make sure the namespace or the type is defined and contains at least one public member. Make sure the imported element name doesn't use any aliases.
Source Error: C:UsersTomAppDataLocalTempTemporary ASP.NET Fileswebsite2fec408f890149acApp_global.asax.2w_ytzx2.0.vb(26) : warning BC40056: Namespace or type specified in the Imports 'System.Web.Routing' doesn't contain any public member or cannot be found. Make sure the namespace or the type is defined and contains at least one public member. Make sure the imported element name doesn't use any aliases. Imports System.Web.Routing. I installed VS 2008 + sp1 on windows 7. and I am using Asp.net Developement server to Run Web Application.
I am implementing URL rewriting and this is not a MVC app, I am using .Net 3.5 Framework here is my simple setup: 1. My Link Page I have a link on my index.aspx page
(notice SEO friendly URL, purpose of Routing) --> <asp:HyperLink ID="HyperLink1" NavigateUrl="~/Category/Engine" runat="server">Engine</asp:HyperLink>
2. Global.asax:
protected void Application_Start(object sender, EventArgs e) { RegisterRoutes(); } private static void RegisterRoutes() { System.Web.Routing.RouteTable.Routes.Add("category", new System.Web.Routing.Route("Category/{name}", new CategoryRouteHandler("~/catalog.aspx")));.........
Is it possible to use the Microsoft (or Mono) supplied System.Web.Routing instead of the MonoRail routing stuff when building a Castle MonoRail app for ASP.NET?
I'm using the System.Web.Routing.UrlRoutingModule.
With that I'm writing:
routes.Add(new Route(@"cart/add", new RouteHandler("~/Order/CartAdd.ashx"))); routes.Add(new Route(@"cart/delete", new RouteHandler("~/Order/CartDelete.ashx")));
And I also have one route called:
routes.Add(new Route(@"{*url}", new RouteHandler("~/Error/PageNotFound.ashx")));
But if I go directy to /Order/CartAdd.ashx I never enter the routing. It goes directly to that handler. And if I go to /Order/ I get a 403.14 error.
How do I instead catch those urls with the routing?
I have a Web application where i have added a reference to a RESTful WCF. I got the WCF url Routing to work in my webapplication by adding Inherits="RestService.Global" to the Web applications Global.asax.
But then i tried to create url Routing for the Web application and it does not work with the Inherits="RestService.Global" in the Global.asax. If i take it away it works fine. Is there a correct way to do this.
I'm trying to create my own CMS and I've gotten a little bit stuck at the stage of URL routing.
I want clean URLs without extensions and I'd like to be able to create and modify them in a web based interface without any messing around with IIS or actual files.
I've seen how to create a static route, but for that I need to go into my Global.asax file and manually add it.I would like to have all of these routes stored in a database so that I can easily modify them later.
Does anyone know how this can be achieved?
Just for extra information, I will be attempting to create a feature so that if a path exists, but is later changed, a 301 redirect is created to the new URL, is this also possible? (My first problem is the main issue, but thought I might ask this as well just in case it makes a difference)
How to handle asp.net mvc routing along with asp.net webform routing. I have merged my mvc app into my existing web application. In my web application i have implement routing as below:
routes.Add("View Product Details", new Route("Product/{City}/{Manufacturer}/{Name}/{ProductID}/{*ProductType}"));
Similarly i have implemented routing in mvc as below
I'm having a bit of trouble with some strings I am using after rewriting my Url.
My url is here: [URL]
In the above example, Warwickshire is the county and Warwick is the town. I'm referring to these in my query string and am assigning the relevant town/ county to strings in my code behind in order for me to populate labels in page text.
The problem I'm having is that the labels in my page aren't being updated like 'Warwickshire' or 'Warwick, but as 'Warwickshire-Magician' or 'Magician-Warwick'. You can see in the above example that this is making my text not make sense at all. I want to get rid of the 'Magician-' text so I am just left with the town/ county name.
I've got a sitemap in db with all current url, but some urls has changed so I added a column for old urls so I can redirect if old urls are requested and redirect to the new url.
I am using UrlRewriter to rewrite url, below code snippets working fine for single page. As you can see page 'ViewPost.aspx' is being used to rewrite url i want to add one more page 'ViewPost2.aspx' how to achieve it.
webconfig file <rewriter> <rewrite url="(.+)-(.+).aspx" to="~/ViewPost.aspx?id=$2"/> </rewriter> constructing url here