
HTML 表單經常用於獲取用戶的輸入。您可以填寫包含複選框、文本、單選框和提交按鈕的不同表單字段以供輸入。您可以使用 C# 語言以編程方式創建或填寫 HTML 表單。本文涵蓋以下與 HTML 表單相關的部分:
創建或填寫 HTML 表單 - C# API 安裝
Aspose.HTML for .NET API 允許您使用 C# 語言以編程方式創建或填充帶有提交按鈕的 HTML 表單。您可以通過從 下載 部分下載 DLL 文件來配置 API,或者使用以下 NuGet 安裝命令快速安裝它:
PM> Install-Package Aspose.Html
使用 C# 以編程方式創建 HTML 表單
您可以使用 C# 語言以編程方式創建 HTML 表單。請按照以下步驟從頭開始創建它:
- 初始化 HTMLDocument 類的實例。
- 使用 CreateNew 方法創建新的 HTML 表單。
- 輸入簡單文本類型字段。
- 創建一個單選按鈕輸入元素。
- 在 HTML 表單中輸入提交按鈕並添加當前節點。
- 保存 HTML 表單。
以下代碼顯示瞭如何使用 C# 以編程方式創建 HTML 表單:
// 初始化 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");
}
此外,下面是另一種在 C# 中使用本機 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";
// 創建名字標籤
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"));
// 創建單選按鈕字段
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"));
// 創建單選按鈕字段
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 表單:

在 C# 中使用提交按鈕填充 HTML 表單
您已經了解瞭如何創建 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 中的提交按鈕發送數據
您可以使用 FormSubmitter 類的提交按鈕以 HTML 表單發送填充的數據。以下代碼顯示瞭如何在 C# 代碼中調用 Submit() 方法:
// 創建表單提交器實例
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);
// 將表單數據提交到遠程服務器。
// 如果需要,您可以使用重載方法指定用戶憑據和請求超時等
var result = submitter.Submit();
源代碼
下面是使用 C# 以編程方式填寫 HTML 表單的完整源代碼:
// 從“https://httpbin.org/forms/post”url 初始化 HTML 文檔實例
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 for .NET API 而沒有任何評估限制。
結論
總之,您學習瞭如何從頭開始創建 HTML 表單,以及如何填寫現有 HTML 表單並將數據從 C# 應用程序發送到遠程服務器。您還可以訪問 文檔 部分來探索其他幾個功能。如有任何疑問,請隨時通過 免費支持論壇 與我們聯繫。