Не удалось найти тип или имя пространства имен «IJSRuntime»

#c# #.net #blazor

Вопрос:

В моем приложении Blazor на сервере я пытаюсь ввести JSRuntime в соответствии с этой документацией: https://blazor-university.com/javascript-interop/calling-javascript-from-dotnet/

Чтобы добавить JSRuntime в свой проект, я добавил следующую строку в функцию ConfigureServices файла Startup.cs:

 services.AddSingleton<IJSRuntime, JSRuntime>();
 

В верхней части моей страницы с бритвой у меня есть следующее:

 @inject IJSRuntime JSRuntime
 

Когда я пытаюсь скомпилировать, при этом вводится ошибка с сообщением «Не удалось найти тип или имя пространства имен «IJSRuntime» (у вас отсутствует директива using или ссылка на сборку?)»

Я попытался включить «Использовать предварительные просмотры .NET SDK» в соответствии с предложениями stackoverflow, но это не помогло.

Комментарии:

1. Добавьте @с помощью Microsoft. JsInterop в верхней части вашей страницы razor. Или поместите это в файл с надписью Импорт.бритва

2. Есть ли у вас @using Microsoft.JSInterop на странице razor или в файле _Imports.razor? — лол, что сказал Джейсон 🙂

3. Вы добавили ссылку на библиотеку в свой проект?

4. Ах, я использовал Microsoft. JsInterop в моем классе запуска, но не на странице razor. Спасибо!

5. Вы должны отметить ответ @Connor Low как принятый.

Ответ №1:

Вам необходимо включить using инструкцию либо в файл component.razor, либо в файл _Imports.razor (предпочтительно, если вы собираетесь JSInterop часто использовать).:

 @using Microsoft.JSInterop
 

Если вы сервер или шаблоны WASM Blazor, это уже должно быть включено в _Imports.razor.