HTML-Formulare werden häufig verwendet, um Eingaben von Benutzern zu erhalten. Sie können verschiedene Formularfelder mit Checkbox, Text, Radio und Submit-Schaltfläche für die Eingabe ausfüllen. Sie können das HTML-Formular mithilfe der C# Sprache programmgesteuert erstellen oder ausfüllen. Dieser Artikel behandelt die folgenden Abschnitte zu HTML-Formularen:
- HTML-Formular erstellen oder ausfüllen – C# API Installation
- Erstellen Sie ein HTML-Formular programmgesteuert mit C#
- Füllen Sie das HTML-Formular mit der Schaltfläche „Senden“ in C# aus
- Kostenlose API Lizenz
HTML-Formular erstellen oder ausfüllen – C# API Installation
Mit der Aspose.HTML for .NET-API können Sie HTML-Formulare mit Senden-Schaltflächen programmgesteuert mithilfe der C# Sprache erstellen oder ausfüllen. Sie können die API konfigurieren, indem Sie eine DLL Datei aus dem Abschnitt Downloads herunterladen oder sie schnell mit dem folgenden NuGet Installationsbefehl installieren:
PM> Install-Package Aspose.Html
Erstellen Sie ein HTML-Formular programmgesteuert mit C#
Sie können ein HTML-Formular programmgesteuert mit der Sprache C# erstellen. Bitte befolgen Sie die folgenden Schritte, um es von Grund auf neu zu erstellen:
- Initialisiert eine Instanz der Klasse HTMLDocument.
- Erstellen Sie ein neues HTML-Formular mit der methode CreateNew.
- Geben Sie ein einfaches Textfeld ein.
- Erstellen Sie ein Optionsfeld-Eingabeelement.
- Geben Sie die Senden-Schaltfläche im HTML-Formular ein und fügen Sie aktuelle Knoten hinzu.
- HTML-Formular speichern.
Der folgende Code zeigt, wie Sie ein HTML-Formular programmgesteuert mit C# erstellen:
// Initialisiert eine Instanz der HTMLDocument Klasse
using (HTMLDocument document = new HTMLDocument())
{
// Erstellen Sie ein neues HTML-Formular mit der methode CreateNew()
using (var editor = FormEditor.CreateNew(document))
{
// Geben Sie ein einfaches Textfeld ein
var name = editor.AddInput("name");
name.Type = InputElementType.Text;
// Geben Sie ein Optionsfeld ein
var size = editor.AddInput("size");
size.Type = InputElementType.Radio;
size.HtmlElement.InnerHTML = "Sample Text";
// Geben Sie die Senden-Schaltfläche im HTML-Formular ein
var button = editor.Add<Forms.ButtonElement>("btn");
button.Value = "submit";
button.HtmlElement.InnerHTML = "Sample Button";
// Fügt den aktuellen Knoten hinzu
document.Body.AppendChild(editor.Form);
}
// HTML-Formular speichern
document.Save("Create-HTML-Form.html");
}
Darüber hinaus finden Sie unten einen weiteren Ansatz zum Erstellen von HTML-Formularen mit nativen HTML-Formularelementen in C#:
// Erstellen Sie ein HTML-Formular mithilfe der nativen HTML-API
using (var document = new Aspose.Html.HTMLDocument())
{
var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
var body = document.Body;
// Formularelement erstellen
var form = (HTMLFormElement)document.CreateElement("form");
// form.Action = "action_page.php";
// FirstName-Label erstellen
var label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "First name:";
label.For = "fname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Erstellen Sie das FirstName-Feld
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"));
// Erstellen Sie das LastName-Label
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Last name:";
label.For = "lname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Feld „Nachname“ erstellen
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-Feld erstellen
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio1";
input.Name = "Topping";
form.AppendChild(input);
// RadioButton-Label erstellen
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-Feld erstellen
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio2";
input.Name = "Topping";
form.AppendChild(input);
// RadioButton-Label erstellen
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Female";
label.For = "radio2";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Senden-Schaltfläche erstellen
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "submit";
input.Value = "Submit";
form.AppendChild(input);
body.AppendChild(form);
document.Save(dataDir + "Create-HTML-Form.html");
}
Der folgende Screenshot zeigt das Ausgabe HTML-Formular, das mit dem obigen code snippet erstellt wurde:
Füllen Sie das HTML-Formular mit der Schaltfläche „Senden“ in C# aus
Sie haben bereits untersucht, wie Sie ein HTML-Formular erstellen. Jetzt können Sie lernen, wie Sie ein HTML-Formular ausfüllen und die Daten direkt aus Ihrer C# Anwendung an einen beliebigen Remoteserver senden. Sie können verschiedene Elemente im Formular durchlaufen und dann die Schaltfläche Senden zum Senden der Daten verwenden. Hier arbeiten Sie mit einem Vorlagenformular, das von httpbin.org erstellt wurde. Es umfasst das Ausfüllen von Text, Optionsfeldern sowie Kontrollkästchen, die Sie unten lernen:
Aktivieren Sie das Kontrollkästchen Wert im Eingabetyp
Kontrollkästchen sind hilfreich, wenn Sie mehr als eine Option auswählen müssen. Sie können den Wert im Eingabetyp-Kontrollkästchen einfach mit dem folgenden Code auswählen:
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)
{
// Wählen Sie Zwiebel und Käse beide Optionen in den Kontrollkästchen
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
Füllen Sie den Eingabetyp Text und das Optionsfeld aus
Ein HTML-Formular kann mehrere Textfelder und Optionsfelder zum Sammeln von Daten enthalten. Sie können den Eingabetext mit folgendem Code füllen:
// Sie können die Daten mit direktem Zugriff auf die Eingabeelemente wie folgt ausfüllen:
editor["custname"].Value = "Aspose";
// oder dieses:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// oder sogar durch Ausführen einer Massenoperation wie dieser:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
Ebenso können Sie Optionsfelder mit dem folgenden Code auswählen:
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)
{
// Wählen Sie im Radio-Button als Größe Medium aus
if (input.Value == "medium")
{
input.SetRadioValue(true);
}
}
Senden von Daten mit der Schaltfläche „Senden“ in HTML
Sie können ausgefüllte Daten im HTML-Formular mit der Schaltfläche „Senden“ mithilfe der Klasse FormSubmitter senden. Der folgende Code zeigt, wie die Methode Submit() in C# Code aufgerufen wird:
// Erstellen Sie eine Instanz des Formularübermittlers
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);
// Senden Sie die Formulardaten an den Remote-Server.
// Bei Bedarf können Sie Benutzeranmeldeinformationen und Timeout für die Anfrage usw. mit Überladungsmethoden angeben
var result = submitter.Submit();
Quellcode
Nachfolgend finden Sie den vollständigen Quellcode zum programmgesteuerten Ausfüllen von HTML-Formularen mit C#:
// Initialisieren Sie eine Instanz des HTML-Dokuments von der URL „https://httpbin.org/forms/post“.
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
// Erstellen Sie eine Instanz des Formular-Editors
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)
{
// Wählen Sie im Radio-Button als Größe Medium aus
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)
{
// Wählen Sie Zwiebel und Käse beide Optionen in den Kontrollkästchen
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
// Sie können die Daten mit direktem Zugriff auf die Eingabeelemente wie folgt ausfüllen:
editor["custname"].Value = "Aspose";
// oder dieses:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// oder sogar durch Ausführen einer Massenoperation wie dieser:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
// Erstellen Sie eine Instanz des Formularübermittlers
using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
{
// Senden Sie die Formulardaten an den Remote-Server.
// Bei Bedarf können Sie Benutzeranmeldeinformationen und Zeitüberschreitung für die Anfrage usw. angeben.
var result = submitter.Submit();
// Überprüfen Sie den Status des Ergebnisobjekts
if (result.IsSuccess)
{
// Überprüfen Sie, ob das Ergebnis im json Format vorliegt
if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
{
// Dump-Ergebnisdaten auf die Konsole
Console.WriteLine(result.Content.ReadAsString());
}
else
{
// Laden Sie die Ergebnisdaten als HTML-Dokument
using (var resultDocument = result.LoadDocument())
{
// Sehen Sie sich das HTML-Dokument hier an.
}
}
}
}
}
}
Kostenlose API Lizenz
Sie können Aspose.HTML for .NET API ohne Evaluierungseinschränkungen evaluieren, indem Sie eine kostenlose temporäre Lizenz anfordern.
Fazit
Zusammenfassend haben Sie gelernt, wie Sie ein HTML-Formular von Grund auf neu erstellen und wie Sie ein vorhandenes HTML-Formular ausfüllen und die Daten von Ihrer C# Anwendung an einen Remoteserver senden. Sie können auch den Abschnitt Dokumentation besuchen, um mehrere andere Funktionen zu erkunden. Bitte zögern Sie nicht, uns bei Fragen über das kostenlose Support-Forum zu kontaktieren.