2014-12-18 10 views
0

나는 Generic Handler[.ashx]을 사용하여 동적 이미지를 만든 다음 코드 뒤에있는 사용자 컨트롤의 이미지에 동일한 이미지를 할당했습니다.Image URL [asp.net]에서 쿼리 문자열 매개 변수 읽기

string capt = //some random logic value. 
imgCaptcha.ImageUrl = "~/BO/term.ashx?param=" + capt; 

지금 같은 UserControl을 몇 가지 버튼 이벤트에, 나는 ImageUrl

protected void btnVerify_Click(object sender, EventArgs e) 
{ 
    //something like this 
    string param = Request.QueryString["param"] 

} 

그러나 요청의 쿼리 매개 변수를 읽고 싶어. QueryString 실 거예요. 내게 아무 것도주지 말아주세요. 일부는 .aspx 페이지 에 추가되었으므로 요청 경로는 쿼리 매개 변수가없는 .aspx 페이지와 같을 것입니다.

그러나 imgCaptcha.ImageUrl은 어떤 경로를 제공합니까 ~/BO/term.ashx?param=123456입니다.

이제이 정보를 .Net 표준 클래스를 사용하여 읽으 려합니다. 내 검색어를 해결할만한 것이 있습니까?

참고 : 문자열 메서드 사용에별로 관심이 없습니다.

답변

1

당신은 URI를 생성하고 문자열 분할이 더 그러나 쿼리 문자열 매개 변수를 검색 할 수 있습니다 : 당신은 할 수 없습니다

Uri uri = new System.Uri(Page.Request.Url, VirtualPathUtility.ToAbsolute(Image1.ImageUrl)); 
var parameters = System.Web.HttpUtility.ParseQueryString(uri.Query); 
string value = parameters["param"]; 
0

. 너는 term.ashx에서만 읽을 수있다. 따라서 ImageURL 매개 변수를 구문 분석하거나 매개 변수 값을 어딘가에 저장해야합니다.

예를 들어 당신은 ViewState에 저장할 수 있습니다

string capt = //some random logic value. 
ViewState["imgCaptchaParameter"] = capt; 
imgCaptcha.ImageUrl = "~/BO/term.ashx?param=" + capt; 

그리고 메소드 내에서 다음과 같이 사용 :

protected void btnVerify_Click(object sender, EventArgs e) 
{ 
    //something like this 
    string param = ViewState["imgCaptchaParameter"].ToString(); 
}