Vytvořit vyplnit formulář HTML Odeslat C#

Formuláře HTML se často používají k získávání vstupů od uživatelů. Pro vstup můžete vyplnit různá pole formuláře obsahující zaškrtávací políčko, text, rádio a tlačítko Odeslat. Formulář HTML můžete vytvořit nebo vyplnit programově pomocí jazyka C#. Tento článek obsahuje následující části související s formuláři HTML:

Vytvořte nebo vyplňte formulář HTML - Instalace C# API

Aspose.HTML for .NET API umožňuje vytvářet nebo vyplňovat formuláře HTML pomocí tlačítek Odeslat programově pomocí jazyka C#. Rozhraní API můžete nakonfigurovat stažením souboru DLL ze sekce Downloads nebo jej rychle nainstalovat pomocí následujícího instalačního příkazu NuGet:

PM> Install-Package Aspose.Html

Vytvořte HTML formulář programově pomocí C#

Formulář HTML můžete vytvořit programově pomocí jazyka C#. Chcete-li jej vytvořit od začátku, postupujte podle následujících kroků:

  1. Inicializujte instanci třídy HTMLDocument.
  2. Vytvořte nový HTML formulář pomocí metody CreateNew.
  3. Zadejte pole jednoduchého textu.
  4. Vytvořte vstupní prvek přepínače.
  5. Zadejte tlačítko Odeslat ve formuláři HTML a přidejte aktuální uzly.
  6. Uložit HTML formulář.

Následující kód ukazuje, jak vytvořit formulář HTML programově pomocí C#:

// Inicializujte instanci třídy HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
    // Vytvořte nový formulář HTML pomocí metody CreateNew().
    using (var editor = FormEditor.CreateNew(document))
    {
        // Zadejte pole jednoduchého textu
        var name = editor.AddInput("name");                    
        name.Type = InputElementType.Text;                    

        // Zadejte přepínač
        var size = editor.AddInput("size");
        size.Type = InputElementType.Radio;
        size.HtmlElement.InnerHTML = "Sample Text";

        // Zadejte tlačítko Odeslat ve formuláři HTML
        var button = editor.Add<Forms.ButtonElement>("btn");
        button.Value = "submit";
        button.HtmlElement.InnerHTML = "Sample Button";

        // Přidá aktuální uzel
        document.Body.AppendChild(editor.Form);
    }
    // Uložit HTML formulář
    document.Save("Create-HTML-Form.html");
}

Níže je navíc uveden další přístup k vytváření formuláře HTML pomocí nativního prvku formuláře HTML v C#:

// Vytvořte formulář HTML pomocí nativního rozhraní HTML API
using (var document = new Aspose.Html.HTMLDocument())
{
    var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
    var body = document.Body;

    // vytvořit formulářový prvek
    var form = (HTMLFormElement)document.CreateElement("form");
//                form.Action = "stranka_akce.php";

    // Vytvořte štítek Jméno
    var label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "First name:";
    label.For = "fname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // Vytvořte pole Jméno
    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"));

    // Vytvořte štítek Příjmení
    label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "Last name:";
    label.For = "lname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // Vytvořte pole Příjmení
    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"));               

    // Vytvořte pole RadioButton
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "radio";
    input.Id = "radio1";
    input.Name = "Topping";
    form.AppendChild(input);

    // Vytvořte štítek 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"));

    // Vytvořte pole RadioButton
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "radio";
    input.Id = "radio2";
    input.Name = "Topping";
    form.AppendChild(input);

    // Vytvořte štítek 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"));

    // Vytvořit tlačítko Odeslat
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "submit";
    input.Value = "Submit";
    form.AppendChild(input);

    body.AppendChild(form);
    document.Save(dataDir + "Create-HTML-Form.html");
}

Následující snímek obrazovky ukazuje výstupní formulář HTML vytvořený s výše uvedeným fragmentem kódu:

Vytvořit formulář HTML Odeslat Btn

Vyplňte formulář HTML tlačítkem Odeslat v C#

Jak vytvořit formulář HTML jste již prozkoumali. Nyní se můžete naučit, jak vyplnit formulář HTML a odeslat data na libovolný vzdálený server přímo z vaší aplikace C#. Ve formuláři můžete iterovat různé položky a poté data odeslat pomocí tlačítka Odeslat. Zde budete pracovat s šablonovým formulářem vytvořeným httpbin.org. Zahrnuje vyplňování textu, přepínače a zaškrtávací políčka, která se naučíte níže:

Zaškrtněte políčko Hodnota v typu vstupu

Zaškrtávací políčka jsou užitečná tam, kde potřebujete vybrat více než jednu možnost. Hodnotu v zaškrtávacím políčku typu vstupu můžete snadno vybrat pomocí následujícího kódu:

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)
{
    // V zaškrtávacích polích vyberte obě možnosti cibule a sýr
    if (input.Value == "onion" || input.Value == "cheese")
    {
    	input.SetCheckboxValue(true);
    }
}

Vyplňte pole Input Type Text a Radio

Formulář HTML může obsahovat několik textových polí a polí s přepínači pro sběr dat. Vstupní text můžete vyplnit následujícím kódem:

// Data můžete vyplnit pomocí přímého přístupu k vstupním prvkům, například takto:
editor["custname"].Value = "Aspose";

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

// nebo dokonce provedením hromadné operace, jako je tato:
editor.Fill(new Dictionary<string, string>()
{
    {"custemail", "test@test.com"},
    {"custtel", "+123-456-789"}
});

Podobně můžete vybrat pole přepínačů pomocí kódu níže:

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)
{
    // Vyberte médium jako velikost v tlačítku Přepínač
    if (input.Value == "medium")
    {
    	input.SetRadioValue(true);
    }
}

Odesílání dat pomocí tlačítka Odeslat v HTML

Vyplněná data můžete odeslat ve formuláři HTML pomocí tlačítka Odeslat pomocí třídy FormSubmitter. Následující kód ukazuje, jak volat metodu Submit() v kódu C#:

// Vytvořte instanci odesílatele formuláře
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);

// Odešlete data formuláře na vzdálený server.
// Pokud potřebujete, můžete zadat uživatelská pověření a časový limit pro požadavek atd. pomocí metod přetížení
var result = submitter.Submit();

Zdrojový kód

Níže je uveden úplný zdrojový kód pro programové vyplnění formulářů HTML pomocí C#:

// Inicializujte instanci dokumentu HTML z adresy URL „https://httpbin.org/forms/post“.
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
    // Vytvořte instanci Editoru formulářů
    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)
        {
            // Vyberte médium jako velikost v tlačítku Přepínač
            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)
        {
            // V zaškrtávacích polích vyberte obě možnosti cibule a sýr
            if (input.Value == "onion" || input.Value == "cheese")
            {
                input.SetCheckboxValue(true);
            }
        }

        // Data můžete vyplnit pomocí přímého přístupu k vstupním prvkům, například takto:
        editor["custname"].Value = "Aspose";

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

        // nebo dokonce provedením hromadné operace, jako je tato:
        editor.Fill(new Dictionary<string, string>()
        {
            {"custemail", "test@test.com"},
            {"custtel", "+123-456-789"}
        });

        // Vytvořte instanci odesílatele formuláře
        using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
        {
            // Odešlete data formuláře na vzdálený server.
            // Pokud potřebujete, můžete zadat přihlašovací údaje uživatele a časový limit pro požadavek atd.
            var result = submitter.Submit();

            // Zkontrolujte stav výsledného objektu
            if (result.IsSuccess)
            {
                // Zkontrolujte, zda je výsledek ve formátu json
                if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
                {
                    // Uložte data výsledků do konzole
                    Console.WriteLine(result.Content.ReadAsString());
                }
                else
                {
                    // Načtěte výsledná data jako dokument HTML
                    using (var resultDocument = result.LoadDocument())
                    {
                        // Prohlédněte si HTML dokument zde.
                    }
                }

            }
        }
    }
}

Bezplatná licence API

Aspose.HTML for .NET API můžete vyhodnotit bez jakýchkoliv omezení hodnocení, když požádáte o bezplatnou dočasnou licenci.

Závěr

Na závěr jste se naučili, jak vytvořit HTML formulář od začátku, a také jak vyplnit existující HTML formulář a odeslat data na vzdálený server z vaší C# aplikace. Můžete také navštívit sekci Dokumentace a prozkoumat několik dalších funkcí. V případě jakýchkoliv dotazů nás neváhejte kontaktovat na Free Support Forum.

Viz také