Los formularios HTML se utilizan con frecuencia para obtener información de los usuarios. Puede completar diferentes campos de formulario que contienen Casilla de verificación, Texto, Radio y botón Enviar para la entrada. Puede crear o completar el formulario HTML mediante programación utilizando el lenguaje C#. Este artículo cubre las siguientes secciones relacionadas con los formularios HTML:
- Crear o completar un formulario HTML: instalación de la API de C#
- Crear un formulario HTML programáticamente usando C#
- Rellene el formulario HTML con el botón Enviar en C#
- Licencia de API gratuita
Crear o completar un formulario HTML: instalación de la API de C#
Aspose.HTML for .NET La API le permite crear o completar formularios HTML con botones Enviar mediante programación usando el lenguaje C#. Puede configurar la API descargando un archivo DLL desde la sección Descargas, o instalarlo rápidamente con el siguiente comando de instalación NuGet:
PM> Install-Package Aspose.Html
Crear un formulario HTML programáticamente usando C#
Puede crear un formulario HTML mediante programación utilizando el lenguaje C#. Siga los pasos a continuación para crearlo desde cero:
- Inicializa una instancia de la clase HTMLDocument.
- Cree un nuevo formulario HTML con el método CreateNew.
- Introduzca un campo de tipo de texto simple.
- Cree un elemento de entrada de botón de radio.
- Ingrese el botón de envío en el formulario HTML y agregue los nodos actuales.
- Guardar formulario HTML.
El siguiente código muestra cómo crear un formulario HTML mediante programación usando C#:
// Inicializar una instancia de la clase HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
// Crear un nuevo formulario HTML con el método CreateNew()
using (var editor = FormEditor.CreateNew(document))
{
// Introducir campo de tipo de texto simple
var name = editor.AddInput("name");
name.Type = InputElementType.Text;
// Ingrese un botón de opción
var size = editor.AddInput("size");
size.Type = InputElementType.Radio;
size.HtmlElement.InnerHTML = "Sample Text";
// Botón de envío de entrada en formulario HTML
var button = editor.Add<Forms.ButtonElement>("btn");
button.Value = "submit";
button.HtmlElement.InnerHTML = "Sample Button";
// Agrega el nodo actual
document.Body.AppendChild(editor.Form);
}
// Guardar formulario HTML
document.Save("Create-HTML-Form.html");
}
Además, a continuación se muestra otro enfoque para crear un formulario HTML usando un elemento de formulario HTML nativo en C#:
// Cree un formulario HTML utilizando la API HTML nativa
using (var document = new Aspose.Html.HTMLDocument())
{
var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
var body = document.Body;
// crear elemento de formulario
var form = (HTMLFormElement)document.CreateElement("form");
// formulario.Acción = "pagina_accion.php";
// Crear etiqueta de nombre
var label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "First name:";
label.For = "fname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Crear campo Nombre
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"));
// Crear etiqueta de apellido
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Last name:";
label.For = "lname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Crear campo Apellido
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"));
// Crear campo de botón de radio
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio1";
input.Name = "Topping";
form.AppendChild(input);
// Crear etiqueta de botón de radio
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Male";
label.For = "radio1";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Crear campo de botón de radio
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio2";
input.Name = "Topping";
form.AppendChild(input);
// Crear etiqueta de botón de radio
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Female";
label.For = "radio2";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Crear botón Enviar
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "submit";
input.Value = "Submit";
form.AppendChild(input);
body.AppendChild(form);
document.Save(dataDir + "Create-HTML-Form.html");
}
La siguiente captura de pantalla muestra el formulario HTML de salida creado con el fragmento de código anterior:
Rellene el formulario HTML con el botón Enviar en C#
Ya ha explorado cómo crear un formulario HTML. Ahora puede aprender a llenar formularios HTML y enviar los datos a cualquier servidor remoto directamente desde su aplicación C#. Puede iterar a través de diferentes elementos en el formulario y luego usar el botón Enviar para enviar los datos. Aquí trabajará con un formulario de plantilla creado por httpbin.org. Incluye texto de relleno, botones de radio, así como casillas de verificación que aprenderá a continuación:
Seleccione la casilla de verificación Valor en tipo de entrada
Las casillas de verificación son útiles cuando necesita elegir más de una opción. Puede seleccionar fácilmente el valor en la casilla de verificación de tipo de entrada con el siguiente código:
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)
{
// Elija cebolla y queso ambas opciones en Casillas de verificación
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
Rellene el campo de radio y texto de tipo de entrada
Un formulario HTML puede contener varios cuadros de texto y campos de botones de opción para recopilar datos. Puede completar el texto de entrada con el siguiente código:
// Puede completar los datos utilizando el acceso directo a los elementos de entrada, así:
editor["custname"].Value = "Aspose";
// o esto:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// o incluso realizando una operación masiva, como esta:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
Del mismo modo, puede seleccionar campos de botones de opción con el siguiente código:
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)
{
// Seleccione medio como tamaño en el botón de opción
if (input.Value == "medium")
{
input.SetRadioValue(true);
}
}
Envío de datos con el botón Enviar en HTML
Puede enviar datos completos en un formulario HTML con el botón Enviar usando la clase FormSubmitter. El siguiente código muestra cómo llamar al método Submit() en código C#:
// Crear una instancia de remitente de formulario
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);
// Envíe los datos del formulario al servidor remoto.
// Si lo necesita, puede especificar las credenciales de usuario y el tiempo de espera para la solicitud, etc. con métodos de sobrecarga
var result = submitter.Submit();
Código fuente
A continuación se muestra el código fuente completo para llenar formularios HTML mediante programación usando C#:
// Inicialice una instancia de documento HTML desde la URL 'https://httpbin.org/forms/post'
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
// Crear una instancia de Form Editor
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)
{
// Seleccione medio como tamaño en el botón de opción
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)
{
// Elija cebolla y queso ambas opciones en Casillas de verificación
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
// Puede completar los datos utilizando el acceso directo a los elementos de entrada, así:
editor["custname"].Value = "Aspose";
// o esto:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// o incluso realizando una operación masiva, como esta:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
// Crear una instancia de remitente de formulario
using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
{
// Envíe los datos del formulario al servidor remoto.
// Si lo necesita, puede especificar las credenciales de usuario y el tiempo de espera para la solicitud, etc.
var result = submitter.Submit();
// Comprobar el estado del objeto de resultado
if (result.IsSuccess)
{
// Comprobar si el resultado está en formato json
if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
{
// Volcar datos de resultados a la consola
Console.WriteLine(result.Content.ReadAsString());
}
else
{
// Cargue los datos de resultados como un documento HTML
using (var resultDocument = result.LoadDocument())
{
// Inspeccione el documento HTML aquí.
}
}
}
}
}
}
Licencia de API gratuita
Puede evaluar Aspose.HTML for .NET API sin ninguna limitación de evaluación solicitando una licencia temporal gratuita.
Conclusión
En conclusión, ha aprendido cómo crear un formulario HTML desde cero, así como también cómo completar un formulario HTML existente y enviar los datos a un servidor remoto desde su aplicación C#. También puede visitar la sección Documentación para explorar otras funciones. No dude en contactarnos en el Foro de soporte gratuito para cualquiera de sus consultas.