Вызов функций JavaScript с параметрами в C#: методы и примеры

При совместной работе с C# и JavaScript могут возникнуть ситуации, когда вам потребуется вызвать функцию JavaScript с параметрами из вашего кода C#. В этой статье блога мы рассмотрим несколько методов достижения этой цели, а также примеры кода для каждого метода. Давайте погрузимся!

Метод 1: использование элемента управления WebBrowser
Элемент управления WebBrowserв C# предоставляет способ размещения веб-содержимого, включая JavaScript, в приложении Windows Forms. Вы можете использовать этот элемент управления для вызова функций JavaScript с параметрами. Вот пример:

webBrowser1.Document.InvokeScript("myFunction", new object[] { param1, param2 });

Метод 2: использование RegisterClientScriptBlockили RegisterStartupScript
Если вы работаете с веб-формами ASP.NET, вы можете использовать RegisterClientScriptBlockили RegisterStartupScriptкласса Pageдля внедрения кода JavaScript на страницу. Вот пример:

string script = $"myFunction('{param1}', {param2});";
ClientScript.RegisterClientScriptBlock(this.GetType(), "myFunctionCall", script, true);

Метод 3. Использование HttpClientдля выполнения веб-запроса
Если вы хотите вызвать функцию JavaScript на веб-странице из кода C#, вы можете использовать HttpClientдля выполнения HTTP-запроса и выполнения кода JavaScript. Вот пример:

using (HttpClient client = new HttpClient())
{
    string url = "https://example.com/myscript.js";
    string script = $"myFunction('{param1}', {param2});";
    await client.GetStringAsync(url);
}

Метод 4. Использование взаимодействия JavaScript в Blazor
Если вы работаете с Blazor, вы можете использовать взаимодействие JavaScript для вызова функций JavaScript с параметрами. Этот метод предполагает создание функции JavaScript и ее вызов из кода C#. Вот пример:

@inject IJSRuntime jsRuntime;
...
await jsRuntime.InvokeVoidAsync("myFunction", param1, param2);

В этой статье мы рассмотрели несколько методов вызова функций JavaScript с параметрами из C#. Независимо от того, работаете ли вы с Windows Forms, веб-формами ASP.NET или Blazor, эти методы предоставляют вам гибкость и беспрепятственное взаимодействие с кодом JavaScript. Выберите метод, который лучше всего соответствует требованиям вашего приложения и потребностям интеграции.

Не забудьте импортировать необходимые пространства имен и библиотеки в зависимости от выбранного вами метода. Приятного кодирования!