Методы маршрутизации Razor Pages - PullRequest
0 голосов
/ 27 июня 2018

Я новичок на бритвенных страницах (используется для шаблона MVC). Я наткнулся на несколько интересных шаблонов маршрутизации, которые я видел на GitHub:

services.AddMvc()
    .AddViewLocalization()
    .AddDataAnnotationsLocalization()
    .AddRazorPagesOptions(options =>
    {
        options.Conventions.AddPageRoute("/Edit", "/{Slug}/Edit");
        options.Conventions.AddPageRoute("/Delete", "{Slug}/Delete");
        options.Conventions.AddPageRoute("/Details", "{Slug?}");
        options.Conventions.AddPageRoute("/Details", @"Index");
        options.Conventions.AddPageRoute("/Create", "{Slug?}/Create");
    });

В некоторых проектах я не вижу AddRazorPagesOption

Просто из любопытства, что произойдет, если я не укажу такую ​​маршрутизацию?

1 Ответ

0 голосов
/ 27 июня 2018

Метод options.Conventions.AddPageRoute просто поможет вам определить пользовательскую маршрутизацию для ваших страниц. Итак, страница бритвы:

  1. Edit будет иметь шаблон маршрута /{Slug}/Edit, где Slug - это параметр из URL.
  2. Delete будет иметь шаблон маршрута /{Slug}/Delete, где Slug - это параметр из URL.
  3. Details будет иметь шаблон маршрута /{Slug?}, где Slug является необязательным необязательным параметром из URL. Также вы можете перейти на эту страницу, используя /Index.
  4. Create будет иметь шаблон маршрута /{Slug?}/Create, где Slug - необязательный параметр из URL.

Если вы удалите их, все ваши бритвенные страницы будут просто использовать соглашения по умолчанию, то есть базовое соглашение о запуске папки Pages в качестве корневой папки. Для страниц, имеющих параметры, вы должны передать их в качестве параметра запроса в URL-адресе запроса. Например, без определенных соглашений вам придется использовать /Edit?slug=myValue, если вы хотите перейти на страницу Edit элемента myValue. С настроенным соглашением, URL хорош, потому что вы будете использовать /myValue/Edit.

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

...