При совместной работе с 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. Выберите метод, который лучше всего соответствует требованиям вашего приложения и потребностям интеграции.
Не забудьте импортировать необходимые пространства имен и библиотеки в зависимости от выбранного вами метода. Приятного кодирования!