Я понимаю, что существует множество статей и ресурсов на эту тему, но все, кажется, показывают только, как переместить строку запроса, такую как category = shoes , вокруг URL-адреса в другое место, как это товары / {категория}
Ну, у меня есть следующая строка запроса: profile.aspx? Q = 98c2b15f-90c3-4a7f-a33f-0e34b106877e
Я пытался реализовать RoutHandler для запроса к БД, чтобы найти имя пользователя и создать URL, например mydomain.com / usersname
Это то, что я пытался (сейчас все жестко запрограммировано, пока я не заработаю) :
void Application_Start(object sender, EventArgs e)
{
RegisterRoute(System.Web.Routing.RouteTable.Routes);
}
void RegisterRoute(System.Web.Routing.RouteCollection routes)
{
routes.Add("Profiles", new System.Web.Routing.Route("profile/{profile}", new RouteHandler()));
}
А это класс обработчика:
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
string username = requestContext.RouteData.Values["profile"] as string;
HttpContext.Current.Items["q"] = "98c2b15f-90c3-4a7f-a33f-0e34b106877e";
return BuildManager.CreateInstanceFromVirtualPath("~/pub/profile.aspx", typeof(Page)) as Page;
}
Profile.aspx фактически ищет строку запроса "q". И с вышеупомянутой установкой, это не находит это.
Что я делаю не так? Как мне перенаправить или переписать URL, чтобы он был красивым + сохранить его, чтобы на странице можно было найти нужные ему строки запросов?
Любая помощь будет отличной. Заранее спасибо.