Inurl topic радиусная. Влияние системы маршрутизации

Последнее обновление: 05.12.2019

AnchorTagHelper представляет тег-хелпер, который позволяет создавать ссылки. Он может принимать ряд специальных атрибутов:

    asp-controller : указывает на контроллер, которому предназначен запрос

    asp-action : указывает на действие контроллера

    asp-area : указывает на действие область, в которой расположен контроллер или страница RazorPage (если они находятся в отдельной области)

    asp-page : указывает на RazorPage, которая будет обрабатывать запрос

    asp-page-handler : указывает на обработчик страницы RazorPage, которая будет применяться для обработки запроса

    asp-host : указывает на домен сайта

    asp-protocol : определяет протокол (http или https)

    asp-route : указывает на название маршрута

    asp-all-route-data : устанавливает набор значений для параметров

    asp-route-[название параметра] : определяет значение для определенного параметра

    asp-fragment : определяет ту часть хэш-ссылки, которая идет после символа решетки #. Например, "paragraph2" в ссылке "http://mysite.com/#paragraph2"

asp-action и asp-controller

@Html.ActionLink("О сайте","About","Home") О сайте

В первом случае используется html-хелпер, во втором - стандартный элемент ссылки с хелпером Url.Content. Еще один способ предоставляют tag-хелпер AnchorTagHelper:

О сайте

В данном случае используется не элемент html , а именно хелпер AnchorTagHelper. Его атрибут asp-controller указывает на название контроллера, а asp-action определяет действие, которому будет идти запрос. Если указан атрибут asp-action , но не указан asp-controller , то в качестве контроллера используется тот контроллер, который связан с текущим представлением.

О сайте

В данном случае предполагается, что контроллер Home находится в области Service.

Если, наоборот, в представлении, которое находится в какой-нибудь области, надо создать ссылку на действие контроллера, который не находится ни в какой области, то указывается пустой атрибут:

О сайте

asp-host и asp-protocol

AnchorTagHelper по умолчанию создает локальную ссылку, если же нам надо создать ссылку на другой домен, то мы можем применить атрибут asp-host :

О сайте

Кроме того, мы можем изменить стандартный протокол на https, использовав атрибут asp-protocol . Данный элемент в итоге создает следующую ссылку: https://localhost.com/Home/About

asp-route- и asp-all-route-data

А что если у нас метод принимает какие-нибудь параметры, которые надо указать в ссылке:

Public IActionResult GetPerson(int id){......}

В этом случае мы можем использовать атрибут asp-route- :

Item5

Если метод принимает несколько параметров, например:

Public IActionResult GetPerson(int id, string name, int age) { return Content($"id={id} name={name} age={age}"); }

то мы можем указать несколько атрибутов asp-route- :

Item5

Чтобы не устанавливать все параметры по отдельности, можно применить атрибут asp-all-route-data :

Item5

asp-all-route-data в качестве значения принимает словарь с параметрами и их значениями. В результате будет генерироваться ссылка, аналогичная предыдущей.

Влияние системы маршрутизации

При использовавании данного тег-хелпера может возникнуть вопрос, а какая именно ссылка будет сгенерирована? В реальности ответ на этот вопрос зависиот системы маршрутизации. Например, по умолчанию в проекте определен один маршрут (в методе Configure класса Startup):

Endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");

Возьмем прелпоследний пример:

Item5

Если мы немного изменим определение маршрута, убрав сегмент параметра id:

Endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}");

То параметр id будет трактоваться как часть строки запроса: http://localhost:60141/Home/GetPerson?id=5&name=tom&age=18

Но это только одна из частностей. Возьмем другой пример. Допустим, в классе Startup определено несколько маршрутов:

App.UseEndpoints(endpoints => { endpoints.MapControllerRoute(name: "products", pattern: "Products/{action}/{id?}", defaults: new { controller = "Home" }); endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); });

Первым здесь установлен маршрут "products", который будет сопоставлять запросы к контроллеру Home с маршрутом "Products/{action}/{id?}". В частности, запрос http://localhost:xxxxx/Products/Index будет обрабатываться методом Index контроллера Home.

И теперь следующий тег

Жми здесь

Жми здесь

И не смотря на то, что у нас также определен стандартный маршрут, который позволяет генерировать стандартные ссылки, включающие имя контроллера и имя его метода, но в данном случае для генерации ссылок будет применяться первый маршрут, который маршрут который совпадает с определением ссылки.

Но возьмем чуть более сложную систему маршрутов:

App.UseEndpoints(endpoints => { endpoints.MapControllerRoute(name: "default", pattern: "BookStore", defaults: new { controller = "Book", action = "Index" }); endpoints.MapControllerRoute(name: "default1", pattern: "Store/Sub{action}/{id?}", defaults: new { controller = "Home" }); endpoints.MapControllerRoute(name: "default2", pattern: "{controller=Home}/{action=Index}/{id?}"); });

Из определения маршрутов ясно, то запрос http://localhost:xxxxx/BookStore будет обрабатываться методом Index контроллера Book. А запрос http://localhost:xxxxx/Store/SubIndex/ будет обрабатываться контроллером Home и его методом Index.

Теперь пусть у нас в представлении создаются две ссылки:

Home

Book

Http://localhost:xxxxx/Store/SubIndex

Http://localhost:xxxxx/BookStore

Поэтому если в приложении определено несколько маршрутов, то следует учитывать систему маршрутизации и проверять сгенерированные ссылки, иначе в результате можно получить совсем не то, что ожидалось.

asp-route

С помощью параметра asp-route можно сгенерировать ссылку на основании маршрута. Например, пусть у нас есть такой маршрут:

App.UseEndpoints(endpoints => { endpoints.MapControllerRoute(name: "book", pattern: "BookStore", defaults: new { controller = "Book", action = "Index" }); endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); });

Возьмем первый маршрут по имени "book":

Книги

Книги

Как правильно искать с помощью google.com

Все наверное умеют пользоваться такой поисковой системой, как гугл =) Но не все знают, что если грамотно составить поисковой запрос с помощью специальных конструкций, то можно достичь результатов того, что Вы ищете намного эффективнее и быстрее =) В этой статье я постараюсь показать что и как Вам нужно делать, чтобы искать правильно

Гугл поддерживает несколько расширенных операторов поиска, имеющими специальное значение при поиске на google.com. Типично, эти операторы изменяют поиск, или даже говорят гуглу делать полностью различные типы поиска. Например, конструкция link: является специальным оператором, и запрос link:www.google.com не даст вам нормального поиска, но вместо этого найдет все web-страницы, которые имеют связи к google.com.
альтернативные типы запросов

cache: Если Вы будете включать другие слова в запрос, то Гугл подсветит эти включенные слова в пределах кэшируемого документа.
Например, cache:www.сайт web покажет кэшируемое содержимое с подсвеченным словом "web".

link: рассматриваемый выше поисковой запрос покажет веб-страницы, на которых содержатся ссылки к указанному запросу.
Например: link:www.сайт отобразит все страницы на которых есть ссылка на http://www.сайт

related: Отобразит web-страницы, которые являются "подобными" (related) указанной web-странице.
Например, related: www.google.com перечислит web-страницы, которые являются подобными домашней странице Гугл.

info: Информация запроса: представит немного информации, которую Гугл имеет о запрашиваемой web-странице.
Например, info:сайт покажет информацию о нашем форуме =) (Армада - Форум адалт вебмастеров).

Другие информационные запросы

define: Запрос define: обеспечит определение слов, которые Вы вводите после того, как это, собранный из различных сетевых источников. Определение будет для всей введенной фразы (то есть, это будет включать все слова в точный запрос).

stocks: Если Вы начинаете запрос с stocks: Гугл обработает остальную часть сроков запроса как символы биржевых сводок, и свяжется со страницей, показывающую готовую информацию для этих символов.
Например, stocks: Intel yahoo покажет информацию о Intel и Yahoo. (Отметьте, что Вы должны напечатать символы последних новостей, не название компании)

Модификаторы Запросов

site: Если Вы включаете site: в ваш запрос, Гугл ограничит результаты теми вебсайтами, которые найдет в данном домене.
Также можно искать и по отдельным зонам, как таковое ru, org, com, etc ( site:com site:ru )

allintitle: Если Вы запускаете запрос с allintitle:, Гугл ограничит результаты со всеми словами запроса в заголовке.
Например, allintitle: google search вернет все страницы гугла по поиску как то images, Blog, etc

intitle: Если Вы включаете intitle: в вашем запросе, Гугл ограничит результаты документами, содержащими то слово в заголовке.
Например, intitle:Бизнес

allinurl: Если Вы запускаете запрос с allinurl: Гугл ограничит результаты, со всеми словами запроса в URL.
Например, allinurl: google search вернет документы с google и search в заголовке. Также как вариант можно разделять слова слэшем (/) тогда слова по обе стороны слэша будут искаться в пределах одной страницы: Пример allinurl: foo/bar

inurl: Если Вы включаете inurl: в вашем запросе, Гугл ограничит результаты документами, содержащими то слово в URL.
Например, Animation inurl:сайт

intext: ищет только в тексте страницы указанное слово, игнорируя заглавие и тексты ссылок, и прочее не относящееся к. Есть также и производная этого модификатора - allintext: т.е. далее все слова в запросе будут искаться только в тексте, что тоже бывает важно, игнорируя часто используемые слова в ссылках
Например, intext:форум

daterange: ищет во временных рамках (daterange:2452389-2452389), даты для времени указываются в Юлианском формате.

Ну и еще всякие интересные примеры запросов

Примеры составления запросов для Google. Для спамеров

Inurl:control.guest?a=sign

Site:books.dreambook.com “Homepage URL” “Sign my” inurl:sign

Site:www.freegb.net Homepage

Inurl:sign.asp “Character Count”

“Message:” inurl:sign.cfm “Sender:”

Inurl:register.php “User Registration” “Website”

Inurl:edu/guestbook “Sign the Guestbook”

Inurl:post “Post Comment” “URL”

Inurl:/archives/ “Comments:” “Remember info?”

“Script and Guestbook Created by:” “URL:” “Comments:”

Inurl:?action=add “phpBook” “URL”

Intitle:”Submit New Story”

Журналы

Inurl:www.livejournal.com/users/ mode=reply

Inurl greatestjournal.com/ mode=reply

Inurl:fastbb.ru/re.pl?

Inurl:fastbb.ru /re.pl? “Гостевая книга”

Блоги

Inurl:blogger.com/comment.g?”postID”"anonymous”

Inurl:typepad.com/ “Post a comment” “Remember personal info?”

Inurl:greatestjournal.com/community/ “Post comment” “addresses of anonymous posters”

“Post comment” “addresses of anonymous posters” -

Intitle:”Post comment”

Inurl:pirillo.com “Post comment”

Форумы

Inurl:gate.html?”name=Forums” “mode=reply”

Inurl:”forum/posting.php?mode=reply”

Inurl:”mes.php?”

Inurl:”members.html”

Inurl:forum/memberlist.php?”



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: