Маршрутизация в ASP.NET - PullRequest
       2

Маршрутизация в ASP.NET

0 голосов
/ 07 октября 2010

Мне нужно использовать маршрутизацию с параметрами в моем приложении ASP.NET.

public class Global : System.Web.HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        RegisterRoutes();
    }

    private void RegisterRoutes()
    {
        var routes = RouteTable.Routes;

        routes.MapPageRoute(
            "Profile",
            String.Format("{0}/{{{1}}}/", "Profile", "Id"),
            "~/Views/Account/Profile.aspx",
            false,
            new RouteValueDictionary {{"Id", null}});
    }
}

Затем, перейдя к « / Profile », я хочу получить Page_Load метод Request.Params ["Id"] как null и путем перехода к " / Profile / 1 ", Request.Params ["Id"] как "1" .

Где я допустил ошибку?

Ответы [ 2 ]

1 голос
/ 07 октября 2010

С помощью традиционных веб-форм я создал два маршрута в вашем методе RegisterRoutes ().

routes.Add("profile", new Route("profile", 
    new CustomRouteHandler("~/profile.aspx")));
routes.Add("profileId", new Route("profile/{id}", 
    new CustomRouteHandler("~/profile.aspx")));

CustomRouteHandler выглядел примерно так:

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

  public IHttpHandler GetHttpHandler(RequestContext requestContext)    
  {        
      string queryString = "";
      HttpRequest request = HttpContext.Current.Request;

      string id = Convert.ToString(requestContext.RouteData.Values["id"]);
      if (id.Length > 0)
      {
          queryString = "?id=" + id;
      }
      HttpContext.Current.RewritePath(          
        string.Concat(          
        VirtualPath,          
        queryString));         
      var page = BuildManager.CreateInstanceFromVirtualPath             
        (VirtualPath, typeof(Page)) as IHttpHandler;        
      return page;    
  }
}
0 голосов
/ 08 сентября 2014

С помощью ASP.NET URL-маршрутизации это может быть достигнуто. Вот пример http://newapputil.blogspot.in/2013/12/aspnet-40-web-forms-url-routing.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...