2014-12-18 3 views
0

Я создал динамическое изображение с использованием Generic Handler[.ashx], а затем присвоил его изображению на моем пользовательском элементе из кода позади.Прочитать строку запроса string из 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 не даст мне ничего, поскольку usercontrol будет добавлен на некотором .aspx странице , так что путь запроса будет такой же, как и страница .aspx, у которой нет параметров запроса.

Но imgCaptcha.ImageUrl дайте мне некоторый путь, который равен ~/BO/term.ashx?param=123456.

Теперь я хочу прочитать эту информацию, используя некоторый стандартный класс .Net. Есть ли что-нибудь, что разрешит мой запрос?

Примечание: Меня не интересуют методы строкой.

ответ

1

вы можете создать Ури и получить параметры строки запроса, однако строка Раскол лучше:

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(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^