У мене є три значення, які я повинен передати як параметри для, наприклад strID
, strName
та strDate
.
Я хочу перенаправити ці три параметри на іншу сторінку в. Response.Redirect()
Чи може хтось надати мені правильний рядок запиту?
У мене є три значення, які я повинен передати як параметри для, наприклад strID
, strName
та strDate
.
Я хочу перенаправити ці три параметри на іншу сторінку в. Response.Redirect()
Чи може хтось надати мені правильний рядок запиту?
Відповіді:
(Далі наводиться текст розділу посилання на запис у Вікіпедії.)
Типова URL-адреса, що містить рядок запиту, така:
http://server/path/program?query_string
Коли сервер отримує запит на таку сторінку, він запускає програму (якщо це налаштовано), передаючи програмі рядок query_string без змін. Знак питання використовується як роздільник і не є частиною рядка запиту.
Посилання на веб-сторінці може мати URL-адресу, яка містить рядок запиту, однак HTML визначає три способи, як веб-браузер може генерувати рядок запиту:
Основне використання рядків запитів - це вміст HTML-форми, також відомої як веб-форма. Зокрема, коли подається форма, що містить поля field1, field2, field3, вміст полів кодується як рядок запиту наступним чином:
field1=value1&field2=value2&field3=value3...
field1=value1&field1=value2&field1=value3...
Для кожного поля форми рядок запиту містить пару пар = значення. Веб-форми можуть містити поля, які користувач не бачить; ці поля включаються в рядок запиту під час подання форми
Ця конвенція є рекомендацією W3C. W3C рекомендує, щоб усі веб-сервери підтримували роздільники з комою, крім роздільників амперсандів [6], щоб дозволити рядки запитів application / x-www-form-urlencoded в URL-адресах у документах HTML без необхідності виводити амперсанди.
Технічно вміст форми кодується як рядок запиту лише тоді, коли методом подання форми є GET. Те саме кодування використовується за замовчуванням, коли методом подання є POST, але результат не надсилається як рядок запиту, тобто не додається до URL-адреси дії форми. Швидше, рядок надсилається як тіло запиту HTTP.
Спробуйте так. Це повинно спрацювати
Response.Redirect(String.Format("yourpage.aspx?strId={0}&strName={1}&strDate{2}", Server.UrlEncode(strId), Server.UrlEncode(strName),Server.UrlEncode(strDate)));
~mypage.aspx?strID=x&strName=y&strDate=z
Це можна зробити за допомогою:
Response.Redirect("http://localhost/YourControllerName/ActionMethodName?querystring1=querystringvalue1&querystring2=querystringvalue2&querystring3=querystringvalue3");
Я використовую AbsoluteUri, і ви можете отримати його так:
string myURI = Request.Url.AbsoluteUri;
if (!WebSecurity.IsAuthenticated) {
Response.Redirect("~/Login?returnUrl="
+ Request.Url.AbsoluteUri );
Потім після входу в систему:
var returnUrl = Request.QueryString["returnUrl"];
if(WebSecurity.Login(username,password,true)){
Context.RedirectLocal(returnUrl);
Для мене це добре працює.