Как использовать inline C# в браузере вместо Javascript - PullRequest
0 голосов
/ 28 января 2020

Я только что обнаружил, что Microsoft представила Blazor, который позволяет запускать код C# в браузере. Когда я смотрел некоторые учебные пособия, мне показалось, что вам нужен базовый сервер asp. net, чтобы это работало. Было бы неплохо, если бы я мог набрать C# код в браузере, например:

<script>

    //C# code
    string myName = "John";
    alert(myName);

</script>

вместо

<script>

    //Javascript code
    var myName = "John";
    alert(myName);

</script>

Можно ли это сделать?

1 Ответ

10 голосов
/ 28 января 2020

Нет, вы не можете просто поместить код C# в тег script. Браузеры не знают, как анализировать и запускать код C#. Blazor выполняет компиляцию C# (на сервере) в. Net сборок, которые затем запускаются в браузере через WebAssembly . Подробности в Blazor введение . Вот отрывок, который кажется уместным:

Приложения Blazor основаны на компонентах. Компонент в Blazor - это элемент пользовательского интерфейса, такой как страница, диалог или форма ввода данных.

...

Класс компонента обычно записывается в виде разметки Razor страница с расширением .razor. Компоненты в Blazor формально упоминаются как компоненты Razor. Razor - это синтаксис для объединения HTML разметки с C# кодом, разработанный для повышения производительности труда разработчиков. Razor позволяет переключаться между HTML разметкой и C# в одном файле с поддержкой IntelliSense. Razor Pages и MVC также используют Razor. В отличие от Razor Pages и MVC, которые построены вокруг модели запроса / ответа, компоненты используются специально для клиентской логики пользовательского интерфейса c и композиции.

Следующая разметка Razor демонстрирует компонент (Dialog.razor), который может быть вложен в другой компонент:

<div>
    <h1>@Title</h1>

    @ChildContent

    <button @onclick="OnYes">Yes!</button>
</div>

@code {
    [Parameter]
    public string Title { get; set; }

    [Parameter]
    public RenderFragment ChildContent { get; set; }

    private void OnYes()
    {
        Console.WriteLine("Write to the console in C#! 'Yes' button was selected.");
    }
}

И:

Когда приложение Blazor WebAssembly создается и запускается в браузере:

  • C# файлы кода и файлы Razor компилируются в. NET сборки.
  • Сборки и среда выполнения. NET загружаются в браузер.
  • Blazor WebAssembly загружает среду выполнения. NET и настраивает среду выполнения для загрузки сборок для приложения. Среда выполнения Blazor WebAssembly использует JavaScript взаимодействие для обработки DOM-манипуляций и вызовов API браузера.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...