Prawdopodobnie można rozwiązać ten problem za pomocą Route
. Zrobiłem proste demo, które możesz wypróbować za kilka minut. W pliku Global.asax.cs
, dodać tę metodę:
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Products",
"Products/{product}", "~/getstring.aspx",
false,
new RouteValueDictionary { { "product", "NoneSelected" } }
);
}
w tym samym pliku, w już istniejącym void Application_Start(object sender, EventArgs e)
metodzie dodać RegisterRoutes(RouteTable.Routes);
:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
Z tym, skonfigurowaniu Route
który zajmie żądanie takie jak to:
http://foo.com/Products/bike%20stand
i zamapuj je na getstring.aspx
. Zauważ, że adres URL zakodowany jest w adresie URL.
W getstring.aspx
można uzyskać dostęp do wartości („stand rower”) tak:
protected void Page_Load(object sender, EventArgs e)
{
string routeValue = "";
if (RouteData.Values.ContainsKey("product"))
routeValue = RouteData.Values["product"].ToString();
//routeValue now contains "bike stand"
SelectedProduct.Text = routeValue;
}
mam skonfigurować Route
w tej próbce na ścieżce „Produkty” pod folderze aplikacji. Nie polecam konfigurowania trasy bezpośrednio pod folderem aplikacji, jak w pytaniu. Ci może zrobić jednak, jeśli absolutnie chcą:
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Products",
"{product}", "~/getstring.aspx",
false,
new RouteValueDictionary { { "product", "NoneSelected" } }
);
}
Chcesz uzyskać parametry ciąg kwerendy i przekierować do strona na podstawie parametru? –
Oczekiwana strona to zawsze 'getstring.aspx'? –
Tak AliBaig. na podstawie ciągu zapytania lubię przekierowywać to samo na inną stronę. a getstring.aspx to tylko przykładowa nazwa strony, którą można zmienić. – Sensa