Total Pageviews

URL rewriting through global.aspx



---------------------------------------------------------------------------------
At global file
................


<%@ Import Namespace="System.Web.Routing" %>
<script runat="server">

    void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes(RouteTable.Routes);

    }
    public static void RegisterRoutes(RouteCollection routes)
    {    
        // for dynamic url like this  
        routes.MapPageRoute("PersonDetails", "product/{FirstName}/{id}", "~/product.aspx");     

       //for static url like this
        routes.MapPageRoute("ContactUss", "ContactUs", "~/ContactUs.aspx");
    }
   
      
</script>
-----------------------------------------------------------------------

Create a class file with name "CustomRouteHandler"
..........

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Compilation;
using System.Web.Routing;

public interface IRoutablePage
{
    RequestContext RequestContext { set; }
}

public class CustomRouteHandler : IRouteHandler
{
    public CustomRouteHandler(string virtualPath)
    {
        this.VirtualPath = virtualPath;
    }

    public string VirtualPath { get; private set; }

    public IHttpHandler GetHttpHandler(RequestContext
          requestContext)
    {
        var page = BuildManager.CreateInstanceFromVirtualPath
             (VirtualPath, typeof(Page)) as IHttpHandler;

        if (page != null)
        {
            var routablePage = page as IRoutablePage;

            if (routablePage != null) routablePage.RequestContext = requestContext;
        }

        return page;
    }
}
----------------------------------------------------------------------------------



Calling side  coding

At Aspx page

 <asp:HyperLink ID="HyperLink1" runat="server" > click here </asp:HyperLink>
-----------------------------------------------------------------

 At cs page for sending request

    page_load() //at page load

      {
         
        HyperLink1.NavigateUrl = WriteUrl("kumar", "12");
      }


    protected string WriteUrl(string fname, string ID)
    {
        return Page.GetRouteUrl("PersonDetails", new { FirstName = fname, id = ID });
    }


-----------------------------------------------------------------


At the called page side

if you want to access url query string  then can write like this



at page load or any where you want on called page

  using

  var thePath = RouteData.Values["name"];



0 comments:

Post a Comment