- ASP.NET query string
- Query strings
- ASP.NET query string example
- Explicit binding with FromQuery
- Automatic binding of query parameters
- Query parameters in a view
- Как разобрать URL в JavaScript?
- 1. Структура URL
- 2. Конструктор URL()
- 3. Строка запроса (query string)
- 4. Название хоста (hostname)
- 5. Путь (pathname)
- 6. Хеш (hash)
- 7. Проверка (валидация) URL
- 8. Работа с URL
- 9. Заключение
- ASP QueryString Collection
- Examples
- Example 1
- Example 2
- COLOR PICKER
- Report Error
- Thank You For Helping Us!
ASP.NET query string
In this article we show how to work with query strings in ASP.NET.
ASP.NET is a cross-platform, high-performance, open-source framework for building modern, cloud-enabled, web applications. It is developed by Microsoft.
Query strings
Query strings or query parameters are the part of a uniform resource locator (URL) which assigns values to specified parameters. This is one way of sending data to the destination server.
http://example.com/api/users?name=John%20Doe&occupation=gardener
The query parameters are specified after the ? character. Multiple fields are separated with the &. Special characters, such as spaces, are encoded. In the above string, the space is encoded with the %20 value
ASP.NET query string example
In the first example, we get the query strings via the HttpRequest . HttpRequest represents the incoming side of an individual HTTP request.
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", (HttpRequest request) => < string name = request.Query["name"]; string occupation = request.Query["occupation"]; string msg = $"is a \n"; return Results.Content(msg); >); app.Run("http://localhost:3000");
In the example, we get two query strings via the HttpRequest .
string name = request.Query["name"];
We get the name query parameter using the Query property of the request object.
$ curl 'localhost:3000?name=John%20Doe&occupation=gardener' John Doe is a gardener
Explicit binding with FromQuery
It is possible to explicitly bind query parameters utilizing the FromQuery attribute.
using Microsoft.AspNetCore.Mvc; var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", ([FromQuery(Name = "name")] string? name, [FromQuery(Name = "occupation")] string? occupation) => < if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(occupation)) < return Results.BadRequest("bad request"); >string msg = $" is a \n"; return Results.Content(msg); >); app.Run("http://localhost:3000");
In the example, we explicitly bind two query parameters to two variables. In addition, the query strings are mandatory.
if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(occupation))
If we do not receive values for the two parameters, we send a bad request back to the client.
$ curl 'localhost:3000?name=Roger%20Roe&occupation=driver' Roger Roe is a driver
For a correct request with all query parameters, we get a response.
$ curl 'localhost:3000?name=Roger%20Roe' "bad request"
Since we did not provide the second parameter, we have received a bad request response.
Automatic binding of query parameters
ASP.NET automatically binds query, form, and path parameters to types.
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", (string name, string occupation) => < string msg = $"is a \n"; return Results.Content(msg); >); app.Run("http://localhost:3000");
In the example, we ASP.NET automatically binds the query parameters to the name and occupation variables.
$ curl 'localhost:3000?name=Roger%20Roe&occupation=driver' Roger Roe is a driver
Query parameters in a view
We can get query parameters in a view via @Context.Request.Query .
var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); var app = builder.Build(); app.UseRouting(); app.UseEndpoints(endppoints => < endppoints.MapDefaultControllerRoute(); >); app.Run("http://localhost:3000");
We set up an ASP.NET application with controllers and views.
using Microsoft.AspNetCore.Mvc; namespace QueryStringEx.Controllers; public class HomeController : Controller < [HttpGet("/")] public IActionResult Home() < return View(); >>
In the controller, we have a single mapping that returns a view for the home page.
@Context.Request.Query["name"] is a @Context.Request.Query["occupation"]
In the view, we refer to two query parameters.
$ curl 'localhost:3000?name=Roger%20Roe&occupation=driver'Roger Roe is a driver
We create a GET request with two query parameters and receive an HTML output.
In this article, we worked with query strings in ASP.NET.
Как разобрать URL в JavaScript?
Представляю Вашему вниманию перевод заметки «How to Parse URL in JavaScript: hostname, pathname, query, hash» автора Dmitri Pavlutin.
Унифицированный указатель ресурса или, сокращенно, URL — это ссылка на веб-ресурс (веб-страницу, изображение, файл). URL определяет местонахождения ресурса и способ его получения — протокол (http, ftp, mailto).
Например, вот URL данной статьи:
https://dmitripavlutin.com/parse-url-javascript
Часто возникает необходимость получить определенные элементы URL. Это может быть название хоста (hostname, dmitripavlutin.com ) или путь (pathname, /parse-url-javascript ).
Удобным способом получить отдельные компоненты URL является конструктор URL() .
В этой статье мы поговорим о структуре и основных компонентах URL.
1. Структура URL
Изображение лучше тысячи слов. На представленном изображении Вы можете видеть основные компоненты URL:
2. Конструктор URL()
Конструктор URL() — это функция, позволяющая разбирать (парсить) компоненты URL:
const url = new URL(relativeOrAbsolute [, absoluteBase])
Аргумент relativeOrAbsolute может быть абсолютным или относительным URL. Если первый аргумент — относительная ссылка, то второй аргумент, absoluteBase , является обязательным и представляет собой абсолютный URL — основу для первого аргумента.
Например, инициализируем URL() с абсолютным URL:
const url = new URL('http://example.com/path/index.html') url.href // 'http://example.com/path/index.html'
Теперь скомбинируем относительный и абсолютный URL:
const url = new URL('/path/index.html', 'http://example.com') url.href // 'http://example.com/path/index.html'
Свойство href экземпляра URL() возвращает переданную URL-строку.
После создания экземпляра URL() , Вы можете получить доступ к компонентам URL. Для справки, вот интерфейс экземпляра URL() :
Здесь тип USVString означает, что JavaScript должен возвращать строку.
3. Строка запроса (query string)
Свойство url.search позволяет получить строку запроса URL, начинающуюся с префикса ? :
const url = new URL( 'http://example.com/path/index.html?message=hello&who=world' ) url.search // '?message=hello&who=world'
Если строка запроса отсутствует, url.search возвращает пустую строку (»):
const url1 = new URL('http://example.com/path/index.html') const url2 = new URL('http://example.com/path/index.html?') url1.search // '' url2.search // ''
3.1. Разбор (парсинг) строки запроса
Вместо получения исходной строки запроса, мы можем получать ее параметры.
Легкий способ это сделать предоставляет свойство url.searchParams . Значением данного свойства является экземпляр интерфейса URLSeachParams.
Объект URLSearchParams предоставляет множество методов для работы с параметрами строки запроса ( get(param), has(param) и т.д.).
Давайте рассмотрим пример:
const url = new Url( 'http://example.com/path/index.html?message=hello&who=world' ) url.searchParams.get('message') // 'hello' url.searchParams.get('missing') // null
url.searchParams.get(‘message’) возвращает значение параметра message строки запроса.
Доступ к несуществующему параметру url.searchParams.get(‘missing’) возвращает null .
4. Название хоста (hostname)
Значением свойства url.hostname является название хоста URL:
const url = new URL('http://example.com/path/index.html') url.hostname // 'example.com'
5. Путь (pathname)
Свойство url.pathname содержит путь URL:
const url = new URL('http://example.com/path/index.html?param=value') url.pathname // '/path/index.html'
Если URL не имеет пути, url.pathname возвращает символ / :
const url = new URL('http://example.com/'); url.pathname; // '/'
6. Хеш (hash)
Наконец, хеш может быть получен через свойство url.hash :
const url = new URL('http://example.com/path/index.html#bottom') url.hash // '#bottom'
Если хеш отсутствует, url.hash возвращает пустую строку (»):
const url = new URL('http://example.com/path/index.html') url.hash // ''
7. Проверка (валидация) URL
При вызове конструктора new URL() не только создается экземпляр, но также осуществляется проверка переданного URL. Если URL не является валидным, выбрасывается TypeError .
Например, http ://example.com не валидный URL, поскольку после http имеется пробел.
Попробуем использовать этот URL:
Поскольку ‘http ://example.com’ неправильный URL, как и ожидалось, new URL(‘http ://example.com’) выбрасывает TypeError .
8. Работа с URL
Такие свойства, как search, hostname, pathname, hash доступны для записи.
Например, давайте изменим название хоста существующего URL с red.com на blue.io :
const url = new URL('http://red.com/path/index.html') url.href // 'http://red.com/path/index.html' url.hostname = 'blue.io' url.href // 'http://blue.io/path/index.html'
Свойства origin, searchParams доступны только для чтения.
9. Заключение
Конструктор URL() является очень удобным способом разбора (парсинга) и проверки (валидации) URL в JavaScript.
new URL(relativeOrAbsolute, [, absoluteBase] в качестве первого параметра принимает абсолютный или относительный URL. Если первый параметр является относительным URL, вторым параметром должен быть абсолютный URL — основа для первого аргумента.
После создания экземпляра URL() , Вы можете получить доступ к основным компонентам URL:
- url.search — исходная строка запроса
- url.searchParams — экземпляр URLSearchParams для получения параметров строки запроса
- url.hostname — название хоста
- url.pathname — путь
- url.hash — значение хеша
ASP QueryString Collection
The QueryString collection is used to retrieve the variable values in the HTTP query string.
The HTTP query string is specified by the values following the question mark (?), like this:
Parameter | Description |
---|---|
variable | Required. The name of the variable in the HTTP query string to retrieve |
index | Optional. Specifies one of multiple values for a variable. From 1 to Request.QueryString(variable).Count |
Examples
Example 1
To loop through all the n variable values in a Query String:
The following request is sent:
and names.asp contains the following script:
The file names.asp would display the following:
Example 2
The following string might be sent:
this results in the following QUERY_STRING value:
Now we can use the information in a script:
If you do not specify any variable values to display, like this:
the output would look like this:
COLOR PICKER
Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Thank You For Helping Us!
Your message has been sent to W3Schools.
Top Tutorials
Top References
Top Examples
Get Certified
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.