สร้างกรอกแบบฟอร์ม HTML ส่ง C#

แบบฟอร์ม HTML มักใช้เพื่อรับข้อมูลจากผู้ใช้ คุณสามารถกรอกข้อมูลในฟิลด์ต่างๆ ของฟอร์มที่มีช่องทำเครื่องหมาย ข้อความ วิทยุ และปุ่มส่งสำหรับการป้อนข้อมูล คุณสามารถสร้างหรือกรอกแบบฟอร์ม HTML โดยทางโปรแกรมโดยใช้ภาษา C# บทความนี้ครอบคลุมส่วนที่เกี่ยวข้องกับรูปแบบ HTML ต่อไปนี้:

สร้างหรือกรอกแบบฟอร์ม HTML - การติดตั้ง C# API

Aspose.HTML for .NET API ช่วยให้คุณสร้างหรือกรอกฟอร์ม HTML ด้วยปุ่มส่งโดยทางโปรแกรมโดยใช้ภาษา C# คุณสามารถกำหนดค่า API ได้โดยการดาวน์โหลดไฟล์ DLL จากส่วน ดาวน์โหลด หรือติดตั้งอย่างรวดเร็วด้วยคำสั่งการติดตั้ง NuGet ต่อไปนี้:

PM> Install-Package Aspose.Html

สร้างแบบฟอร์ม HTML โดยทางโปรแกรมโดยใช้ C#

คุณสามารถสร้างฟอร์ม HTML โดยทางโปรแกรมโดยใช้ภาษา C# โปรดทำตามขั้นตอนด้านล่างเพื่อสร้างตั้งแต่เริ่มต้น:

  1. เริ่มต้นอินสแตนซ์ของคลาส HTMLDocument
  2. สร้างฟอร์ม HTML ใหม่ด้วยเมธอด CreateNew
  3. ป้อนฟิลด์ประเภทข้อความอย่างง่าย
  4. สร้างองค์ประกอบอินพุตปุ่มตัวเลือก
  5. ใส่ปุ่มส่งในรูปแบบ HTML และเพิ่มโหนดปัจจุบัน
  6. บันทึกรูปแบบ HTML

รหัสต่อไปนี้แสดงวิธีการสร้างแบบฟอร์ม HTML โดยทางโปรแกรมโดยใช้ C#:

// เริ่มต้นอินสแตนซ์ของคลาส HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
    // สร้างฟอร์ม HTML ใหม่ด้วยเมธอด CreateNew()
    using (var editor = FormEditor.CreateNew(document))
    {
        // ป้อนฟิลด์ประเภทข้อความอย่างง่าย
        var name = editor.AddInput("name");                    
        name.Type = InputElementType.Text;                    

        // ป้อนปุ่มตัวเลือก
        var size = editor.AddInput("size");
        size.Type = InputElementType.Radio;
        size.HtmlElement.InnerHTML = "Sample Text";

        // ปุ่มส่งอินพุตในรูปแบบ HTML
        var button = editor.Add<Forms.ButtonElement>("btn");
        button.Value = "submit";
        button.HtmlElement.InnerHTML = "Sample Button";

        // เพิ่มโหนดปัจจุบัน
        document.Body.AppendChild(editor.Form);
    }
    // บันทึกรูปแบบ HTML
    document.Save("Create-HTML-Form.html");
}

นอกจากนี้ ด้านล่างนี้เป็นอีกวิธีหนึ่งในการสร้างฟอร์ม HTML โดยใช้องค์ประกอบฟอร์ม HTML ดั้งเดิมใน C#:

// สร้างแบบฟอร์ม HTML โดยใช้ HTML API ดั้งเดิม
using (var document = new Aspose.Html.HTMLDocument())
{
    var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
    var body = document.Body;

    // สร้างองค์ประกอบแบบฟอร์ม
    var form = (HTMLFormElement)document.CreateElement("form");
//                form.Action = "action_page.php";

    // สร้างป้ายกำกับ FirstName
    var label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "First name:";
    label.For = "fname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // สร้างฟิลด์ 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"));

    // สร้างป้ายกำกับนามสกุล
    label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "Last name:";
    label.For = "lname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // สร้างฟิลด์นามสกุล
    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
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "radio";
    input.Id = "radio1";
    input.Name = "Topping";
    form.AppendChild(input);

    // สร้างป้ายกำกับ 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"));

    // สร้างฟิลด์ RadioButton
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "radio";
    input.Id = "radio2";
    input.Name = "Topping";
    form.AppendChild(input);

    // สร้างป้ายกำกับ 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"));

    // สร้างปุ่มส่ง
    input = (HTMLInputElement)document.CreateElement("input");
    input.Type = "submit";
    input.Value = "Submit";
    form.AppendChild(input);

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

ภาพหน้าจอต่อไปนี้แสดงรูปแบบ HTML เอาต์พุตที่สร้างด้วยข้อมูลโค้ดด้านบน:

สร้างแบบฟอร์ม HTML ส่ง Btn

กรอกแบบฟอร์ม HTML ด้วยปุ่มส่งใน C

คุณได้ศึกษาวิธีสร้างฟอร์ม HTML แล้ว ตอนนี้คุณสามารถเรียนรู้วิธีกรอกแบบฟอร์ม HTML และส่งข้อมูลไปยังเซิร์ฟเวอร์ระยะไกลได้โดยตรงจากแอปพลิเคชัน C# ของคุณ คุณสามารถวนซ้ำผ่านรายการต่าง ๆ ในแบบฟอร์มจากนั้นใช้ปุ่มส่งเพื่อส่งข้อมูล ที่นี่ คุณจะได้ทำงานกับ แบบฟอร์มเทมเพลต ที่สร้างโดย httpbin.org ซึ่งรวมถึงการกรอกข้อความ ปุ่มตัวเลือก และช่องทำเครื่องหมายที่คุณกำลังเรียนรู้ด้านล่าง:

เลือกกล่องกาเครื่องหมายค่าในประเภทอินพุต

ช่องทำเครื่องหมายมีประโยชน์เมื่อคุณต้องเลือกมากกว่าหนึ่งตัวเลือก คุณสามารถเลือกค่าในช่องทำเครื่องหมายประเภทอินพุตได้อย่างง่ายดายด้วยรหัสต่อไปนี้:

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)
{
    // เลือกหัวหอมและชีสทั้งสองตัวเลือกในกล่องกาเครื่องหมาย
    if (input.Value == "onion" || input.Value == "cheese")
    {
    	input.SetCheckboxValue(true);
    }
}

กรอกข้อความประเภทอินพุตและฟิลด์วิทยุ

แบบฟอร์ม HTML อาจมีกล่องข้อความหลายช่องและช่องปุ่มตัวเลือกสำหรับการรวบรวมข้อมูล คุณสามารถกรอกข้อความป้อนด้วยรหัสต่อไปนี้:

// คุณสามารถเติมข้อมูลโดยใช้การเข้าถึงโดยตรงไปยังองค์ประกอบอินพุต เช่นนี้:
editor["custname"].Value = "Aspose";

// หรือสิ่งนี้:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";

// หรือแม้กระทั่งโดยการดำเนินการจำนวนมาก เช่นอันนี้:
editor.Fill(new Dictionary<string, string>()
{
    {"custemail", "test@test.com"},
    {"custtel", "+123-456-789"}
});

ในทำนองเดียวกัน คุณสามารถเลือกฟิลด์ปุ่มตัวเลือกด้วยรหัสด้านล่าง:

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)
{
    // เลือกขนาดกลางเป็นขนาดในปุ่มตัวเลือก
    if (input.Value == "medium")
    {
    	input.SetRadioValue(true);
    }
}

การส่งข้อมูลด้วยปุ่มส่งใน HTML

คุณสามารถส่งข้อมูลที่กรอกในรูปแบบ HTML ด้วยปุ่มส่งโดยใช้คลาส FormSubmitter โค้ดต่อไปนี้แสดงวิธีเรียกเมธอด Submit() ในโค้ด C#:

// สร้างตัวอย่างของผู้ส่งแบบฟอร์ม
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);

// ส่งข้อมูลแบบฟอร์มไปยังเซิร์ฟเวอร์ระยะไกล
// หากคุณต้องการ คุณสามารถระบุ user-credentials และ timeout สำหรับคำขอ ฯลฯ ด้วยวิธีการ overload
var result = submitter.Submit();

รหัสแหล่งที่มา

ด้านล่างนี้เป็นซอร์สโค้ดที่สมบูรณ์เพื่อกรอกแบบฟอร์ม HTML โดยทางโปรแกรมโดยใช้ C #:

// เริ่มต้นอินสแตนซ์ของเอกสาร HTML จาก 'https://httpbin.org/forms/post' url
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
    // สร้างอินสแตนซ์ของ 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)
        {
            // เลือกขนาดกลางเป็นขนาดในปุ่มตัวเลือก
            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)
        {
            // เลือกหัวหอมและชีสทั้งสองตัวเลือกในกล่องกาเครื่องหมาย
            if (input.Value == "onion" || input.Value == "cheese")
            {
                input.SetCheckboxValue(true);
            }
        }

        // คุณสามารถเติมข้อมูลโดยใช้การเข้าถึงโดยตรงไปยังองค์ประกอบอินพุต เช่นนี้:
        editor["custname"].Value = "Aspose";

        // หรือสิ่งนี้:
        var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
        comments.Value = "Extra Ketchup PLEASE!";

        // หรือแม้กระทั่งโดยการดำเนินการจำนวนมาก เช่นอันนี้:
        editor.Fill(new Dictionary<string, string>()
        {
            {"custemail", "test@test.com"},
            {"custtel", "+123-456-789"}
        });

        // สร้างตัวอย่างของผู้ส่งแบบฟอร์ม
        using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
        {
            // ส่งข้อมูลแบบฟอร์มไปยังเซิร์ฟเวอร์ระยะไกล
            // หากคุณต้องการ คุณสามารถระบุข้อมูลรับรองผู้ใช้และระยะหมดเวลาสำหรับคำขอ เป็นต้น
            var result = submitter.Submit();

            // ตรวจสอบสถานะของวัตถุผลลัพธ์
            if (result.IsSuccess)
            {
                // ตรวจสอบว่าผลลัพธ์อยู่ในรูปแบบ json หรือไม่
                if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
                {
                    // ถ่ายโอนข้อมูลผลลัพธ์ไปยังคอนโซล
                    Console.WriteLine(result.Content.ReadAsString());
                }
                else
                {
                    // โหลดข้อมูลผลลัพธ์เป็นเอกสาร HTML
                    using (var resultDocument = result.LoadDocument())
                    {
                        // ตรวจสอบเอกสาร HTML ที่นี่
                    }
                }

            }
        }
    }
}

ใบอนุญาต API ฟรี

คุณสามารถประเมิน Aspose.HTML for .NET API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

โดยสรุป คุณได้เรียนรู้วิธีสร้างฟอร์ม HTML ตั้งแต่เริ่มต้น ตลอดจนวิธีกรอกฟอร์ม HTML ที่มีอยู่และการส่งข้อมูลไปยังเซิร์ฟเวอร์ระยะไกลจากแอปพลิเคชัน C# ของคุณ คุณยังสามารถไปที่ส่วน Documentation เพื่อสำรวจคุณลักษณะอื่นๆ อีกหลายอย่าง โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี สำหรับข้อสงสัยของคุณ

ดูสิ่งนี้ด้วย