Sie können dies wahrscheinlich mit einem Route
lösen. Ich habe eine einfache Demo gemacht, die du in ein paar Minuten ausprobieren kannst. In der Global.asax.cs
Datei, fügen Sie diese Methode:
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Products",
"Products/{product}", "~/getstring.aspx",
false,
new RouteValueDictionary { { "product", "NoneSelected" } }
);
}
In der gleichen Datei, in der bereits vorhandenen void Application_Start(object sender, EventArgs e)
Methode, fügen RegisterRoutes(RouteTable.Routes);
:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
Damit haben Sie ein Route
konfiguriert, die eine nehmen Anfrage wie folgt:
http://foo.com/Products/bike%20stand
und auf getstring.aspx
abbilden. Beachten Sie, dass ich den URL in der URL per URL codiert habe.
In getstring.aspx
können Sie den Wert zugreifen („Fahrradständer“) wie folgt aus:
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;
}
Ich habe die Route
in diesem Beispiel auf den Pfad „Produkte“ unter dem Anwendungsordner einrichten. Ich empfehle nicht, dass Sie Ihre Route direkt unter dem Anwendungsordner wie in der Frage einrichten. Sie können es tun, obwohl, wenn Sie wollen unbedingt:
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Products",
"{product}", "~/getstring.aspx",
false,
new RouteValueDictionary { { "product", "NoneSelected" } }
);
}
Wollen Sie die Query-String-Parameter zu erhalten und zu, dass umleiten Seite basierend auf dem Parameter? –
Erwartete Seite ist immer 'getstring.aspx'? –
Ja AliBaig. basierend auf dem Abfrage-String leite ich ihn gerne auf eine andere Seite um. und getstring.aspx ist nur ein Beispiel für einen Seitennamen, der geändert werden kann. – Sensa