צור טופס מילוי HTML שלח C#

טפסים HTML משמשים לעתים קרובות לקבלת קלט מהמשתמשים. אתה יכול למלא שדות טופס שונים המכילים תיבת סימון, טקסט, רדיו וכפתור שלח לקלט. אתה יכול ליצור או למלא את טופס ה-HTML באופן פרוגרמטי באמצעות שפת C#. מאמר זה מכסה את הסעיפים הבאים הקשורים לטפסי HTML:

צור או מילוי טופס HTML - התקנת API של C#

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";

    // צור תווית שם פרטי
    var label = (HTMLLabelElement)document.CreateElement("label");
    label.TextContent = "First name:";
    label.For = "fname";
    form.AppendChild(label);
    form.AppendChild(document.CreateElement("br"));

    // צור שדה שם פרטי
    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);

// שלח את נתוני הטופס לשרת המרוחק.
// אם אתה צריך אתה יכול לציין אישורי משתמש וזמן קצוב עבור הבקשה וכו' עם שיטות עומס יתר
var result = submitter.Submit();

קוד מקור

להלן קוד המקור המלא למילוי טפסי HTML באופן פרוגרמטי באמצעות C#:

// אתחול מופע של מסמך HTML מכתובת האתר 'https://httpbin.org/forms/post'
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 עבור .NET API ללא כל מגבלות הערכה על ידי בקשת Free Temporary License.

סיכום

לסיכום, למדת כיצד ליצור טופס HTML מאפס, וכן כיצד למלא טופס HTML קיים ולשלוח את הנתונים לשרת מרוחק מאפליקציית C# שלך. אתה יכול גם לבקר בסעיף תיעוד כדי לחקור מספר תכונות אחרות. אנא אל תהסס לפנות אלינו בפורום התמיכה החינמית לכל שאלה שלך.

ראה גם