Crear llenar formulario HTML Enviar C#

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#

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:

  1. Inicializa una instancia de la clase HTMLDocument.
  2. Cree un nuevo formulario HTML con el método CreateNew.
  3. Introduzca un campo de tipo de texto simple.
  4. Cree un elemento de entrada de botón de radio.
  5. Ingrese el botón de envío en el formulario HTML y agregue los nodos actuales.
  6. 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:

Crear formulario HTML Enviar Btn

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.

Ver también