Формы HTML часто используются для получения информации от пользователей. Вы можете заполнить различные поля формы, содержащие флажок, текст, радио и кнопку «Отправить» для ввода. Вы можете создать или заполнить HTML-форму программно, используя язык C#. В этой статье рассматриваются следующие разделы, связанные с HTML-формами:
- Создание или заполнение HTML-формы — установка C# API
- Программное создание HTML-формы с помощью C#
- Заполнить HTML-форму кнопкой «Отправить» в С#
- Бесплатная лицензия API
Создание или заполнение HTML-формы — установка C# API
Aspose.HTML for .NET API позволяет программно создавать или заполнять HTML-формы с кнопками «Отправить» с помощью языка C#. Вы можете настроить API, загрузив DLL-файл из раздела Загрузки или быстро установить его с помощью следующей команды установки NuGet:
PM> Install-Package Aspose.Html
Программное создание HTML-формы с помощью C#
Вы можете создать HTML-форму программно, используя язык C#. Чтобы создать его с нуля, выполните следующие действия:
- Инициализировать экземпляр класса HTMLDocument.
- Создайте новую HTML-форму с помощью метода CreateNew.
- Введите простое текстовое поле.
- Создайте элемент ввода переключателя.
- Введите кнопку отправки в HTML-форму и добавьте текущие узлы.
- Сохранить HTML-форму.
В следующем коде показано, как программно создать HTML-форму с помощью C#:
// Инициализировать экземпляр класса HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
// Создайте новую HTML-форму с помощью метода CreateNew()
using (var editor = FormEditor.CreateNew(document))
{
// Введите простое текстовое поле
var name = editor.AddInput("name");
name.Type = InputElementType.Text;
// Введите переключатель
var size = editor.AddInput("size");
size.Type = InputElementType.Radio;
size.HtmlElement.InnerHTML = "Sample Text";
// Введите кнопку отправки в HTML-форме
var button = editor.Add<Forms.ButtonElement>("btn");
button.Value = "submit";
button.HtmlElement.InnerHTML = "Sample Button";
// Добавляет текущий узел
document.Body.AppendChild(editor.Form);
}
// Сохранить HTML-форму
document.Save("Create-HTML-Form.html");
}
Более того, ниже приведен еще один подход к созданию HTML-формы с использованием собственного элемента HTML-формы в C#:
// Создайте HTML-форму с помощью собственного HTML API
using (var document = new Aspose.Html.HTMLDocument())
{
var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
var body = document.Body;
// создать элемент формы
var form = (HTMLFormElement)document.CreateElement("form");
// form.Action = "action_page.php";
// Создать метку имени
var label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "First name:";
label.For = "fname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Создать поле Имя
var input = (HTMLInputElement)document.CreateElement("input");
input.Type = "text";
input.Id = "fname";
input.Name = "fname";
form.AppendChild(input);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Создать ярлык «Фамилия»
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Last name:";
label.For = "lname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Создать поле Фамилия
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "text";
input.Id = "lname";
input.Name = "lname";
form.AppendChild(input);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Создать поле RadioButton
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio1";
input.Name = "Topping";
form.AppendChild(input);
// Создать метку RadioButton
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Male";
label.For = "radio1";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Создать поле RadioButton
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio2";
input.Name = "Topping";
form.AppendChild(input);
// Создать метку RadioButton
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Female";
label.For = "radio2";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Создать кнопку «Отправить»
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "submit";
input.Value = "Submit";
form.AppendChild(input);
body.AppendChild(form);
document.Save(dataDir + "Create-HTML-Form.html");
}
На следующем снимке экрана показана выходная HTML-форма, созданная с помощью приведенного выше фрагмента кода:
Заполнить HTML-форму кнопкой «Отправить» в С#
Вы уже изучили, как создать HTML-форму. Теперь вы можете научиться заполнять HTML-форму и отправлять данные на любой удаленный сервер прямо из своего приложения C#. Вы можете перебирать различные элементы в форме, а затем использовать кнопку «Отправить» для отправки данных. Здесь вы будете работать с формой шаблона, созданной httpbin.org. Он включает в себя заполнение текста, радиокнопок, а также флажков, которые вы узнаете ниже:
Выберите значение в поле «Тип ввода»
Флажки полезны, когда вам нужно выбрать более одного варианта. Вы можете легко выбрать значение в флажке типа ввода с помощью следующего кода:
elements = editor
.Where(x => x.ElementType == Forms.FormElementType.Input)
.Cast<Aspose.Html.Forms.InputElement>()
.Where(x => x.Type == Forms.InputElementType.Checkbox);
foreach (Forms.InputElement input in elements)
{
// Выберите лук и сыр оба варианта в флажках
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
Заполните поле «Тип ввода» и «Радио»
HTML-форма может содержать несколько текстовых полей и полей переключателей для сбора данных. Вы можете заполнить входной текст следующим кодом:
// Вы можете заполнить данные, используя прямой доступ к элементам ввода, например:
editor["custname"].Value = "Aspose";
// или это:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// или даже выполнив массовую операцию, например эту:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
Точно так же вы можете выбрать поля переключателя с помощью кода ниже:
var elements = editor
.Where(x => x.ElementType == Forms.FormElementType.Input)
.Cast<Aspose.Html.Forms.InputElement>()
.Where(x => x.Type == Forms.InputElementType.Radio);
foreach (Forms.InputElement input in elements)
{
// Выберите средний размер в переключателе
if (input.Value == "medium")
{
input.SetRadioValue(true);
}
}
Отправка данных с помощью кнопки отправки в HTML
Вы можете отправить заполненные данные в HTML-форме с помощью кнопки Submit, используя класс FormSubmitter. В следующем коде показано, как вызвать метод Submit() в коде C#:
// Создайте экземпляр отправителя формы
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);
// Отправьте данные формы на удаленный сервер.
// Если вам нужно, вы можете указать учетные данные пользователя и время ожидания для запроса и т. д. с помощью методов перегрузки.
var result = submitter.Submit();
Исходный код
Ниже приведен полный исходный код для программного заполнения HTML-форм с помощью C#:
// Инициализировать экземпляр HTML-документа с URL-адреса https://httpbin.org/forms/post.
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
// Создайте экземпляр редактора форм
using (var editor = FormEditor.Create(document, 0))
{
var elements = editor
.Where(x => x.ElementType == Forms.FormElementType.Input)
.Cast<Aspose.Html.Forms.InputElement>()
.Where(x => x.Type == Forms.InputElementType.Radio);
foreach (Forms.InputElement input in elements)
{
// Выберите средний размер в переключателе
if (input.Value == "medium")
{
input.SetRadioValue(true);
}
}
elements = editor
.Where(x => x.ElementType == Forms.FormElementType.Input)
.Cast<Aspose.Html.Forms.InputElement>()
.Where(x => x.Type == Forms.InputElementType.Checkbox);
foreach (Forms.InputElement input in elements)
{
// Выберите лук и сыр оба варианта в флажках
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
// Вы можете заполнить данные, используя прямой доступ к элементам ввода, например:
editor["custname"].Value = "Aspose";
// или это:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// или даже выполнив массовую операцию, например эту:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
// Создайте экземпляр отправителя формы
using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
{
// Отправьте данные формы на удаленный сервер.
// Если вам нужно, вы можете указать учетные данные пользователя и время ожидания для запроса и т. д.
var result = submitter.Submit();
// Проверить статус объекта результата
if (result.IsSuccess)
{
// Проверьте, находится ли результат в формате json
if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
{
// Вывести данные результата на консоль
Console.WriteLine(result.Content.ReadAsString());
}
else
{
// Загрузите данные результата в виде HTML-документа
using (var resultDocument = result.LoadDocument())
{
// Проверьте HTML-документ здесь.
}
}
}
}
}
}
Бесплатная лицензия API
Вы можете оценить Aspose.HTML для .NET API без каких-либо ограничений оценки, запросив Бесплатную временную лицензию.
Вывод
В заключение вы узнали, как создать HTML-форму с нуля, а также как заполнить существующую HTML-форму и отправить данные на удаленный сервер из вашего приложения C#. Вы также можете посетить раздел Документация, чтобы изучить некоторые другие функции. Если у вас возникнут вопросы, обращайтесь к нам на Форум бесплатной поддержки.