Blazor Особенности отсутствуют в существующем проекте - PullRequest
0 голосов
/ 17 октября 2019

Я начал играть с новым шаблоном проекта "Blazor Server App" в VS 2019, и все работает как положено. Теперь я попытался использовать некоторые компоненты Blazor в существующем приложении .NET Core 3 ASP.NET MVC. Я добавил ".MapBlazorHub (); & .AddServerSideBlazor ();"в класс запуска и

<script src="_framework/blazor.server.js"></script>

в файл _layout. Новый компонент бритвы визуализируется, как и ожидалось, и вызывается метод OnInitialized () в блоке @code. Но когда я пытаюсь использовать событие нажатия кнопки, ничего не происходит - ни в консоли VS - ни в консоли браузера. После нескольких часов исследований я обнаружил, что подсветка синтаксиса отличается в 2 проектах:

Шаблон приложения Microsoft Blazor Server:

enter image description here

Существующий проект:

enter image description here

Также я обнаружил, что контекстное меню «Добавить - Страница Razor ...» доступно только в MSшаблон. Но я не могу найти никаких отличий в csproject или в файле sln.

Я действительно застрял в этом. Есть идеи, что мне не хватает?

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Как сказал Андреас, вам нужно добавить новый файл _Imports.razor в свою папку (Views или в свою пользовательскую папку, в которой вы восстанавливаете компоненты бритвы.

_Imports.razor:

@using Microsoft.AspNetCore.Components.Web

Структура:

enter image description here

Также я обнаружил, что контекстное меню «Добавить - Страница бритвы ...» - это тольковидимый в шаблоне MS. Но я не могу найти никаких отличий в csproject или в файле sln.

Шаблон MS использует папку Pages, и вы можете увидеть опцию Add- Razor Page.

Если вы используете проект Razor Pages, будет Add- Razor Page, так как вы используете MVC, опция не существует.

Если вы используете последнюю версию vs 2019 и asp.net core 3.0,Вы можете создать бритвенный компонент, нажав Add - New Item - Razor Component напрямую

0 голосов
/ 17 октября 2019

В Blazor-Template-Project вы должны увидеть файл _Imports.razor, содержащий несколько директив @using.

Попробуйте добавить следующую директиву в файл Views\_ViewImports.cshtml в приложении MVC.

@using Microsoft.AspNetCore.Components.Web

Без директивы using движок бритвы не знает, что @onclick следует интерпретировать как код C #, и, следовательно, не подключает обработчик событий как исключенный. Вот почему VisualStudio не выделяет его как синтаксис C #.

Если это помогает, вам, вероятно, следует также добавить другие относящиеся к блазору директивы @using в файл _ViewImports.cshtml.

Don 'не знаю насчет пропавшей страницы «Add - Razor ...», sry.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...