Возможно, вы решите это, используя Route
. Я сделал простую демонстрацию, которую вы можете попробовать всего за пару минут. В файле Global.asax.cs
, добавьте этот метод:
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Products",
"Products/{product}", "~/getstring.aspx",
false,
new RouteValueDictionary { { "product", "NoneSelected" } }
);
}
В том же файле, в уже существующем void Application_Start(object sender, EventArgs e)
методе, добавьте RegisterRoutes(RouteTable.Routes);
:
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
При этом, вы настроили Route
, который будет принимать запросите вот так:
http://foo.com/Products/bike%20stand
и нанесите на него getstring.aspx
. Обратите внимание, что у меня url закодировал пространство в URL-адресе.
В getstring.aspx
вы можете получить доступ к значению («велосипед стенд»), как это:
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;
}
Я настроил Route
в этом примере на пути «Продукты» под папку приложения. Я не рекомендую настраивать маршрут непосредственно в папке приложения, как в вопросе. Вы можете сделать это, хотя, если вы абсолютно хотите:
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Products",
"{product}", "~/getstring.aspx",
false,
new RouteValueDictionary { { "product", "NoneSelected" } }
);
}
вы хотите, чтобы получить параметры строки запроса и перенаправления, что страница на основе параметра? –
Ожидаемая страница всегда 'getstring.aspx'? –
Да AliBaig. на основе строки запроса мне нравится перенаправить ее на другую страницу. и getstring.aspx - это просто имя страницы примера, которое можно изменить. – Sensa