Créer Remplir le formulaire HTML Soumettre C#

Les formulaires HTML sont fréquemment utilisés pour obtenir les commentaires des utilisateurs. Vous pouvez remplir différents champs de formulaire contenant la case à cocher, le texte, la radio et le bouton Soumettre pour la saisie. Vous pouvez créer ou remplir le formulaire HTML par programmation à l’aide du langage C#. Cet article couvre les sections suivantes relatives aux formulaires HTML :

Créer ou remplir un formulaire HTML - Installation de l’API C#

L’API Aspose.HTML for .NET vous permet de créer ou de remplir des formulaires HTML avec des boutons d’envoi par programmation à l’aide du langage C#. Vous pouvez configurer l’API en téléchargeant un fichier DLL depuis la section Téléchargements, ou l’installer rapidement avec la commande d’installation NuGet suivante :

PM> Install-Package Aspose.Html

Créer un formulaire HTML par programmation à l’aide de C#

Vous pouvez créer un formulaire HTML par programmation à l’aide du langage C#. Veuillez suivre les étapes ci-dessous pour le créer à partir de zéro :

  1. Initialiser une instance de la classe HTMLDocument.
  2. Créez un nouveau formulaire HTML avec la méthode CreateNew.
  3. Saisissez un champ de type texte simple.
  4. Créez un élément d’entrée de bouton radio.
  5. Entrez le bouton de soumission sous forme HTML et ajoutez les nœuds actuels.
  6. Enregistrer le formulaire HTML.

Le code suivant montre comment créer un formulaire HTML par programmation à l’aide de C# :

// Initialiser une instance de la classe HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
    // Créer un nouveau formulaire HTML avec la méthode CreateNew()
    using (var editor = FormEditor.CreateNew(document))
    {
        // Saisir un champ de type texte simple
        var name = editor.AddInput("name");                    
        name.Type = InputElementType.Text;                    

        // Saisir un bouton radio
        var size = editor.AddInput("size");
        size.Type = InputElementType.Radio;
        size.HtmlElement.InnerHTML = "Sample Text";

        // Entrez le bouton d'envoi sous forme HTML
        var button = editor.Add<Forms.ButtonElement>("btn");
        button.Value = "submit";
        button.HtmlElement.InnerHTML = "Sample Button";

        // Ajoute le nœud actuel
        document.Body.AppendChild(editor.Form);
    }
    // Enregistrer le formulaire HTML
    document.Save("Create-HTML-Form.html");
}

De plus, vous trouverez ci-dessous une autre approche pour créer un formulaire HTML à l’aide d’un élément de formulaire HTML natif en C# :

// Créer un formulaire HTML à l'aide de l'API HTML native
using (var document = new Aspose.Html.HTMLDocument())
{
    var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
    var body = document.Body;

    // créer un élément de formulaire
    var form = (HTMLFormElement)document.CreateElement("form");
//                form.Action = "action_page.php" ;

    // Créer une étiquette de prénom
    var label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "First name:";
    label.For = "fname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // Créer un champ Prénom
    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"));

    // Créer une étiquette LastName
    label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "Last name:";
    label.For = "lname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // Créer un champ Nom
    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"));               

    // Créer un champ RadioButton
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "radio";
    input.Id = "radio1";
    input.Name = "Topping";
    form.AppendChild(input);

    // Créer une étiquette 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"));

    // Créer un champ RadioButton
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "radio";
    input.Id = "radio2";
    input.Name = "Topping";
    form.AppendChild(input);

    // Créer une étiquette 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"));

    // Créer un bouton Soumettre
    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 capture d’écran suivante montre le formulaire HTML de sortie créé avec l’extrait de code ci-dessus :

Créer un formulaire HTML Soumettre Btn

Remplir le formulaire HTML avec le bouton Soumettre en C#

Vous avez déjà exploré comment créer un formulaire HTML. Vous pouvez maintenant apprendre à remplir un formulaire HTML et à envoyer les données à n’importe quel serveur distant directement à partir de votre application C#. Vous pouvez parcourir différents éléments du formulaire, puis utiliser le bouton Soumettre pour envoyer les données. Ici, vous allez travailler avec un modèle de formulaire créé par httpbin.org. Il comprend le remplissage du texte, des boutons radio, ainsi que des cases à cocher que vous apprenez ci-dessous :

Cochez la case Valeur dans le type d’entrée

Les cases à cocher sont utiles lorsque vous devez choisir plusieurs options. Vous pouvez facilement sélectionner la valeur dans la case à cocher du type d’entrée avec le code suivant :

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)
{
    // Choisissez l'oignon et le fromage les deux options dans les cases à cocher
    if (input.Value == "onion" || input.Value == "cheese")
    {
    	input.SetCheckboxValue(true);
    }
}

Remplissez le champ texte et radio du type d’entrée

Un formulaire HTML peut contenir plusieurs zones de texte et champs de bouton radio pour collecter des données. Vous pouvez remplir le texte d’entrée avec le code suivant :

// Vous pouvez remplir les données en utilisant un accès direct aux éléments d'entrée, comme ceci :
editor["custname"].Value = "Aspose";

// ou ca:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";

// ou même en effectuant une opération en bloc, comme celle-ci :
editor.Fill(new Dictionary<string, string>()
{
    {"custemail", "test@test.com"},
    {"custtel", "+123-456-789"}
});

De même, vous pouvez sélectionner des champs de bouton radio avec le code ci-dessous :

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)
{
    // Sélectionnez moyen comme taille dans le bouton Radio
    if (input.Value == "medium")
    {
    	input.SetRadioValue(true);
    }
}

Envoi de données avec le bouton Soumettre en HTML

Vous pouvez envoyer des données remplies sous forme HTML avec le bouton Soumettre en utilisant la classe FormSubmitter. Le code suivant montre comment appeler la méthode Submit() en code C# :

// Créer une instance de soumissionnaire de formulaire
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);

// Envoyez les données du formulaire au serveur distant.
// Si vous en avez besoin, vous pouvez spécifier les informations d'identification de l'utilisateur et le délai d'expiration de la demande, etc. avec des méthodes de surcharge
var result = submitter.Submit();

Code source

Vous trouverez ci-dessous le code source complet pour remplir des formulaires HTML par programmation à l’aide de C# :

// Initialiser une instance de document HTML à partir de l'url 'https://httpbin.org/forms/post'
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
    // Créer une instance 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)
        {
            // Sélectionnez moyen comme taille dans le bouton Radio
            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)
        {
            // Choisissez l'oignon et le fromage les deux options dans les cases à cocher
            if (input.Value == "onion" || input.Value == "cheese")
            {
                input.SetCheckboxValue(true);
            }
        }

        // Vous pouvez remplir les données en utilisant un accès direct aux éléments d'entrée, comme ceci :
        editor["custname"].Value = "Aspose";

        // ou ca:
        var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
        comments.Value = "Extra Ketchup PLEASE!";

        // ou même en effectuant une opération en bloc, comme celle-ci :
        editor.Fill(new Dictionary<string, string>()
        {
            {"custemail", "test@test.com"},
            {"custtel", "+123-456-789"}
        });

        // Créer une instance de soumissionnaire de formulaire
        using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
        {
            // Envoyez les données du formulaire au serveur distant.
            // Si vous en avez besoin, vous pouvez spécifier les informations d'identification de l'utilisateur et le délai d'expiration de la demande, etc.
            var result = submitter.Submit();

            // Vérifier l'état de l'objet de résultat
            if (result.IsSuccess)
            {
                // Vérifiez si le résultat est au format json
                if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
                {
                    // Vider les données de résultat dans la console
                    Console.WriteLine(result.Content.ReadAsString());
                }
                else
                {
                    // Charger les données de résultat sous forme de document HTML
                    using (var resultDocument = result.LoadDocument())
                    {
                        // Inspectez le document HTML ici.
                    }
                }

            }
        }
    }
}

Licence API gratuite

Vous pouvez évaluer Aspose.HTML for .NET sans aucune limitation d’évaluation en demandant une licence temporaire gratuite.

Conclusion

En conclusion, vous avez appris à créer un formulaire HTML à partir de zéro, ainsi qu’à remplir un formulaire HTML existant et à envoyer les données à un serveur distant à partir de votre application C#. Vous pouvez également visiter la section Documentation pour explorer plusieurs autres fonctionnalités. N’hésitez pas à nous contacter sur le Forum d’assistance gratuit pour toutes vos questions.

Voir également