아마도 Route
을 사용하여이를 해결할 수 있습니다. 나는 몇 분만에 시험해 볼 수있는 간단한 데모를 만들었습니다. Global.asax.cs
파일에서이 방법을 추가 : 이미 존재하는 void Application_Start(object sender, EventArgs e)
방법으로, 동일한 파일에
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Products",
"Products/{product}", "~/getstring.aspx",
false,
new RouteValueDictionary { { "product", "NoneSelected" } }
);
}
을 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
에서이 같은 값 ("자전거 스탠드를")에 액세스 할 수 있습니다 : 나는 응용 프로그램 폴더 아래의 경로 "제품"에이 샘플에서 Route
를 설정 한
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;
}
. 질문과 같이 응용 프로그램 폴더 아래에 직접 경로를 설정하지 않는 것이 좋습니다. 당신은 그것을 당신은 절대적으로 원하는 수 있다면 비록에 :
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("Products",
"{product}", "~/getstring.aspx",
false,
new RouteValueDictionary { { "product", "NoneSelected" } }
);
}
당신은 쿼리 문자열 매개 변수를받을 수 있도록 리디렉션 하시겠습니까 매개 변수를 기반으로 한 페이지? –
예상되는 페이지는 항상'getstring.aspx'입니까? –
예 AliBaig. 쿼리 문자열을 기반으로 다른 페이지로 리다이렉트하고 싶습니다. getstring.aspx는 예제 페이지 이름 만 변경할 수 있습니다. – Sensa