ایجاد فرم پر HTML ارسال سی شارپ

فرم‌های HTML اغلب برای دریافت ورودی از کاربران استفاده می‌شوند. می توانید فیلدهای فرم های مختلف حاوی چک باکس، متن، رادیو و دکمه ارسال را برای ورودی پر کنید. شما می توانید فرم HTML را به صورت برنامه نویسی با استفاده از زبان C# ایجاد یا پر کنید. این مقاله بخش های زیر مربوط به فرم های HTML را پوشش می دهد:

ایجاد یا پر کردن فرم HTML - C# API نصب

Aspose.HTML for .NET API به شما امکان می دهد فرم های HTML را با دکمه های ارسال به صورت برنامه نویسی با استفاده از زبان C# ایجاد یا پر کنید. می‌توانید با دانلود یک فایل DLL از بخش Downloads API را پیکربندی کنید یا با دستور نصب زیر NuGet آن را به سرعت نصب کنید:

PM> Install-Package Aspose.Html

ایجاد یک فرم HTML به صورت برنامه ریزی شده با استفاده از سی شارپ

شما می توانید یک فرم HTML را به صورت برنامه نویسی با استفاده از زبان C# ایجاد کنید. لطفا مراحل زیر را برای ایجاد آن از ابتدا دنبال کنید:

  1. نمونه ای از کلاس HTMLDocument را راه اندازی کنید.
  2. با روش CreateNew فرم جدید HTML ایجاد کنید.
  3. فیلد نوع متن ساده را وارد کنید.
  4. یک عنصر ورودی دکمه رادیویی ایجاد کنید.
  5. دکمه ارسال را در فرم HTML وارد کنید و گره های فعلی را اضافه کنید.
  6. ذخیره فرم HTML

کد زیر نحوه ایجاد یک فرم HTML به صورت برنامه نویسی با استفاده از C# را نشان می دهد:

// نمونه ای از کلاس HTMLDocument را راه اندازی کنید
using (HTMLDocument document = new HTMLDocument())
{
    // با متد CreateNew() فرم جدید HTML ایجاد کنید
    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 بومی در سی شارپ آورده شده است:

// با استفاده از HTML API بومی یک فرم HTML ایجاد کنید
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"));

    // برچسب LastName ایجاد کنید
    label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "Last name:";
    label.For = "lname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // فیلد LastName را ایجاد کنید
    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 با دکمه ارسال در سی شارپ

شما قبلا نحوه ایجاد یک فرم HTML را بررسی کرده اید. اکنون می توانید یاد بگیرید که چگونه فرم HTML را پر کنید و داده ها را مستقیماً از برنامه C# خود به هر سرور راه دور ارسال کنید. می توانید از طریق آیتم های مختلف در فرم تکرار کنید و سپس از دکمه ارسال برای ارسال داده ها استفاده کنید. در اینجا شما با یک template form کار خواهید کرد که توسط httpbin.org ایجاد شده است. این شامل پر کردن متن، دکمه‌های رادیویی و همچنین کادرهایی است که در زیر می‌آموزید:

گزینه Value in Input Type را انتخاب کنید

چک باکس ها در جایی که باید بیش از یک گزینه را انتخاب کنید مفید هستند. با کد زیر می توانید به راحتی مقدار موجود در نوع ورودی را انتخاب کنید:

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

شما می توانید با استفاده از کلاس FormSubmitter داده های پر شده را در فرم HTML با دکمه ارسال ارسال کنید. کد زیر نحوه فراخوانی روش Submit() را در کد C# نشان می دهد:

// یک نمونه از ارسال کننده فرم ایجاد کنید
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);

// داده های فرم را به سرور راه دور ارسال کنید.
// در صورت نیاز می توانید با روش های اضافه بار، اعتبار کاربری و مهلت زمانی درخواست و غیره را مشخص کنید
var result = submitter.Submit();

کد منبع

در زیر کد منبع کامل برای پر کردن فرم های HTML به صورت برنامه نویسی با استفاده از سی شارپ آمده است:

// نمونه ای از سند HTML را از آدرس URL "https://httpbin.org/forms/post" راه اندازی کنید
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
    // یک نمونه از ویرایشگر فرم ایجاد کنید
    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 را برای API .NET بدون هیچ گونه محدودیت ارزیابی با درخواست [مجوز موقت رایگان] ارزیابی کنید.

نتیجه

در پایان، نحوه ایجاد یک فرم HTML از ابتدا و همچنین نحوه پر کردن یک فرم HTML موجود و ارسال داده ها به یک سرور راه دور از برنامه C# خود را یاد گرفته اید. همچنین می توانید برای بررسی چندین ویژگی دیگر از بخش اسناد دیدن کنید. لطفاً برای هر یک از سؤالات خود با ما در تالار گفتمان پشتیبانی رایگان تماس بگیرید.

همچنین ببینید