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#
- Créer un formulaire HTML par programmation à l’aide de C#
- Remplir le formulaire HTML avec le bouton Soumettre en C#
- Licence API gratuite
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 :
- Initialiser une instance de la classe HTMLDocument.
- Créez un nouveau formulaire HTML avec la méthode CreateNew.
- Saisissez un champ de type texte simple.
- Créez un élément d’entrée de bouton radio.
- Entrez le bouton de soumission sous forme HTML et ajoutez les nœuds actuels.
- 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 :
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.