Visual Studio Community 2019 16.5.3 с приложением Blazor -> Добавить -> Новый элемент -> Razor Component -> Маршрут или компонент не отображаются - PullRequest
1 голос
/ 09 апреля 2020

У меня очень странная проблема.

Я следую официальному руководству Blazor от Microsoft:

Добавьте новый компонент Todo Razor в приложение в папке Pages. В Visual Studio щелкните правой кнопкой мыши папку «Страницы» и выберите «Добавить»> «Новый элемент»> «Razor Component». Назовите файл компонента Todo.razor. В других средах разработки добавьте пустой файл в папку «Страницы» с именем Todo.razor.

https://docs.microsoft.com/en-us/aspnet/core/tutorials/build-your-first-blazor-app?view=aspnetcore-3.1#build -a-todo-list

Выполнено как это:

enter image description here

Это создает файл, который выглядит следующим образом:

<h3>Todo</h3>

@code {

}

Учитывая, что у него нет маршрутизации, я добавляю @page "/todo" вверх, точно так же, как на страницах примеров Counter.razor и FetchData.razor.

Затем я запускаю приложение, но не могу перейти к

enter image description here

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

Независимо от того, что я делаю, не найден удар из App.razor.

<Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(MainLayout)">
            <p>Sorry, there's nothing at this address.</p>
        </LayoutView>
    </NotFound>
</Router>

Теперь в действительно странную часть. Если я скопирую файл Counter.razor и переименую @page во все, что захочу, он будет работать.

Тогда я подозревал, что это как-то связано с кодировкой или скрытыми символами и т. Д. c. Но если я скопирую все содержимое рабочего файла и изменим только @page, он все равно не будет работать, если файл был создан из пользовательского интерфейса. Что может быть причиной этого?

enter image description here

Я ничего не изменил, все, что нужно сделать, это просто добавить новое приложение Blazor -> Приложение Blazor Server с индивидуальными учетными записями пользователей -> Подключиться к существующему хранилищу пользователей в облаке (Azure AD B2 C).

Я также не могу добавить его в качестве компонента. Добавление <Todo2 /> к Index.razor отобразится, но <Todo /> будет пустым.

Что может быть причиной этого?

1 Ответ

0 голосов
/ 04 мая 2020

Оказалось, что .csproj проблема. Присутствовали следующие значения:

<ItemGroup>
  <Watch Remove="Pages\Todo.razor" />
  <Watch Remove="Pages\Todo2.razor" />
</ItemGroup>

<ItemGroup>
  <None Include="Pages\Todo.razor" />
</ItemGroup>

После удаления каждого ItemGroup он снова начал работать, поскольку файлы просматриваются по умолчанию.

...