Erstellen HTML-Formular ausfüllen Senden C#

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

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:

  1. Initialisiert eine Instanz der Klasse HTMLDocument.
  2. Erstellen Sie ein neues HTML-Formular mit der methode CreateNew.
  3. Geben Sie ein einfaches Textfeld ein.
  4. Erstellen Sie ein Optionsfeld-Eingabeelement.
  5. Geben Sie die Senden-Schaltfläche im HTML-Formular ein und fügen Sie aktuelle Knoten hinzu.
  6. 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:

HTML-Formular erstellen Senden Btn

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.

Siehe auch