Buat Isi Formulir HTML Kirim C#

Formulir HTML sering digunakan untuk mendapatkan input dari pengguna. Anda dapat mengisi kolom formulir yang berbeda yang berisi tombol Kotak Centang, Teks, Radio, dan Kirim untuk input. Anda dapat membuat atau mengisi formulir HTML secara terprogram menggunakan bahasa C#. Artikel ini mencakup bagian berikut yang terkait dengan formulir HTML:

Buat atau Isi Formulir HTML - Instalasi C# API

Anggap.HTML untuk .NET API memungkinkan Anda membuat atau mengisi formulir HTML dengan tombol Kirim secara terprogram menggunakan bahasa C#. Anda dapat mengonfigurasi API dengan mengunduh file DLL dari bagian Unduhan, atau menginstalnya dengan cepat menggunakan perintah penginstalan NuGet berikut:

PM> Install-Package Aspose.Html

Buat Formulir HTML Secara terprogram menggunakan C#

Anda dapat membuat formulir HTML secara terprogram menggunakan bahasa C#. Silakan ikuti langkah-langkah di bawah ini untuk membuatnya dari awal:

  1. Inisialisasi instance dari kelas HTMLDocument.
  2. Buat form HTML baru dengan metode CreateNew.
  3. Masukkan bidang jenis teks sederhana.
  4. Buat elemen masukan tombol radio.
  5. Masukkan tombol kirim dalam bentuk HTML dan tambahkan node saat ini.
  6. Simpan formulir HTML.

Kode berikut menunjukkan cara membuat formulir HTML secara terprogram menggunakan C#:

// Inisialisasi sebuah instance dari kelas HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
    // Buat form HTML baru dengan metode CreateNew()
    using (var editor = FormEditor.CreateNew(document))
    {
        // Masukkan bidang jenis teks sederhana
        var name = editor.AddInput("name");                    
        name.Type = InputElementType.Text;                    

        // Masukkan tombol radio
        var size = editor.AddInput("size");
        size.Type = InputElementType.Radio;
        size.HtmlElement.InnerHTML = "Sample Text";

        // Masukkan tombol kirim dalam bentuk HTML
        var button = editor.Add<Forms.ButtonElement>("btn");
        button.Value = "submit";
        button.HtmlElement.InnerHTML = "Sample Button";

        // Menambahkan node saat ini
        document.Body.AppendChild(editor.Form);
    }
    // Simpan formulir HTML
    document.Save("Create-HTML-Form.html");
}

Selain itu, di bawah ini adalah pendekatan lain untuk membuat formulir HTML menggunakan elemen formulir HTML asli di C#:

// Buat Formulir HTML dengan menggunakan API HTML asli
using (var document = new Aspose.Html.HTMLDocument())
{
    var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
    var body = document.Body;

    // membuat elemen bentuk
    var form = (HTMLFormElement)document.CreateElement("form");
//                form.Action = "action_page.php";

    // Buat label FirstName
    var label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "First name:";
    label.For = "fname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // Buat bidang FirstName
    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"));

    // Buat label Nama Belakang
    label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "Last name:";
    label.For = "lname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // Buat bidang Nama Belakang
    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"));               

    // Buat bidang RadioButton
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "radio";
    input.Id = "radio1";
    input.Name = "Topping";
    form.AppendChild(input);

    // Buat label 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"));

    // Buat bidang RadioButton
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "radio";
    input.Id = "radio2";
    input.Name = "Topping";
    form.AppendChild(input);

    // Buat label 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"));

    // Buat tombol Kirim
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "submit";
    input.Value = "Submit";
    form.AppendChild(input);

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

Tangkapan layar berikut menunjukkan bentuk keluaran HTML yang dibuat dengan cuplikan kode di atas:

Buat Formulir HTML Kirim Btn

Isi Formulir HTML dengan Tombol Kirim di C#

Anda telah menjelajahi cara membuat formulir HTML. Sekarang Anda dapat mempelajari cara mengisi formulir HTML dan mengirim data ke server jarak jauh apa pun langsung dari aplikasi C# Anda. Anda dapat mengulangi item yang berbeda dalam formulir dan kemudian menggunakan tombol Kirim untuk mengirim data. Di sini Anda akan bekerja dengan formulir template yang dibuat oleh httpbin.org. Ini termasuk mengisi Teks, tombol Radio, serta Kotak Centang yang akan Anda pelajari di bawah ini:

Pilih Nilai di kotak centang Jenis Input

Kotak centang sangat membantu jika Anda harus memilih lebih dari satu opsi. Anda dapat dengan mudah memilih nilai di kotak centang jenis masukan dengan kode berikut:

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)
{
    // Pilih bawang dan keju kedua opsi di kotak Centang
    if (input.Value == "onion" || input.Value == "cheese")
    {
    	input.SetCheckboxValue(true);
    }
}

Isi Input Type Text dan Radio Field

Formulir HTML mungkin berisi beberapa kotak teks dan bidang tombol radio untuk mengumpulkan data. Anda dapat mengisi teks input dengan kode berikut:

// Anda dapat mengisi data menggunakan akses langsung ke elemen input, seperti ini:
editor["custname"].Value = "Aspose";

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

// atau bahkan dengan melakukan operasi massal, seperti ini:
editor.Fill(new Dictionary<string, string>()
{
    {"custemail", "test@test.com"},
    {"custtel", "+123-456-789"}
});

Demikian juga, Anda dapat memilih bidang tombol radio dengan kode di bawah ini:

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)
{
    // Pilih media sebagai ukuran di tombol Radio
    if (input.Value == "medium")
    {
    	input.SetRadioValue(true);
    }
}

Mengirim Data dengan Tombol Kirim dalam HTML

Anda dapat mengirim data yang telah diisi dalam bentuk HTML dengan tombol Kirim menggunakan kelas FormSubmitter. Kode berikut menunjukkan cara memanggil metode Submit() dalam kode C#:

// Buat instance pengirim formulir
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);

// Kirim data formulir ke server jarak jauh.
// Jika perlu, Anda dapat menentukan kredensial pengguna dan batas waktu untuk permintaan, dll. Dengan metode kelebihan beban
var result = submitter.Submit();

Kode sumber

Di bawah ini adalah kode sumber lengkap untuk mengisi formulir HTML secara terprogram menggunakan C#:

// Inisialisasi instance dokumen HTML dari url 'https://httpbin.org/forms/post'
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
    // Buat instance Editor Formulir
    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)
        {
            // Pilih media sebagai ukuran di tombol 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)
        {
            // Pilih bawang dan keju kedua opsi di kotak Centang
            if (input.Value == "onion" || input.Value == "cheese")
            {
                input.SetCheckboxValue(true);
            }
        }

        // Anda dapat mengisi data menggunakan akses langsung ke elemen input, seperti ini:
        editor["custname"].Value = "Aspose";

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

        // atau bahkan dengan melakukan operasi massal, seperti ini:
        editor.Fill(new Dictionary<string, string>()
        {
            {"custemail", "test@test.com"},
            {"custtel", "+123-456-789"}
        });

        // Buat instance pengirim formulir
        using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
        {
            // Kirim data formulir ke server jarak jauh.
            // Jika perlu, Anda dapat menentukan kredensial pengguna dan batas waktu untuk permintaan, dll.
            var result = submitter.Submit();

            // Periksa status objek hasil
            if (result.IsSuccess)
            {
                // Periksa apakah hasilnya dalam format json
                if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
                {
                    // Buang data hasil ke konsol
                    Console.WriteLine(result.Content.ReadAsString());
                }
                else
                {
                    // Muat data hasil sebagai dokumen HTML
                    using (var resultDocument = result.LoadDocument())
                    {
                        // Periksa dokumen HTML di sini.
                    }
                }

            }
        }
    }
}

Lisensi API Gratis

Anda dapat mengevaluasi Aspose.HTML for .NET API tanpa Batasan Evaluasi apa pun dengan meminta Lisensi Sementara Gratis.

Kesimpulan

Kesimpulannya, Anda telah mempelajari cara membuat formulir HTML dari awal, serta cara mengisi formulir HTML yang ada dan mengirim data ke server jarak jauh dari aplikasi C# Anda. Anda juga dapat mengunjungi bagian Dokumentasi untuk menjelajahi beberapa fitur lainnya. Jangan ragu untuk menghubungi kami di Forum Dukungan Gratis untuk setiap pertanyaan Anda.

Lihat juga