Biểu mẫu HTML thường được sử dụng để lấy đầu vào từ người dùng. Bạn có thể điền vào các trường biểu mẫu khác nhau chứa Hộp kiểm, Văn bản, Đài phát thanh và nút Gửi để nhập liệu. Bạn có thể tạo hoặc điền biểu mẫu HTML theo chương trình bằng ngôn ngữ C#. Bài viết này bao gồm các phần sau liên quan đến các biểu mẫu HTML:
- Tạo hoặc điền biểu mẫu HTML - Cài đặt API C#
- Tạo biểu mẫu HTML có lập trình bằng C#
- Điền vào biểu mẫu HTML với nút gửi trong C#
- Giấy phép API miễn phí
Tạo hoặc điền biểu mẫu HTML - Cài đặt API C#
API Aspose.HTML for .NET cho phép bạn tạo hoặc điền vào các biểu mẫu HTML bằng các nút Gửi theo chương trình bằng ngôn ngữ C#. Bạn có thể định cấu hình API bằng cách tải xuống tệp DLL từ phần Tải xuống hoặc nhanh chóng cài đặt nó bằng lệnh cài đặt NuGet sau:
PM> Install-Package Aspose.Html
Tạo biểu mẫu HTML có lập trình bằng C#
Bạn có thể tạo một biểu mẫu HTML theo cách lập trình bằng ngôn ngữ C#. Vui lòng làm theo các bước dưới đây để tạo nó từ đầu:
- Khởi tạo một phiên bản của lớp HTMLDocument.
- Tạo biểu mẫu HTML mới bằng phương thức CreateNew.
- Nhập trường loại văn bản đơn giản.
- Tạo phần tử đầu vào nút radio.
- Nhập nút gửi ở dạng HTML và thêm các nút hiện tại.
- Lưu biểu mẫu HTML.
Đoạn mã sau đây cho biết cách tạo biểu mẫu HTML theo cách lập trình bằng C#:
// Khởi tạo một phiên bản của lớp HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
// Tạo biểu mẫu HTML mới với phương thức CreateNew()
using (var editor = FormEditor.CreateNew(document))
{
// Nhập trường loại văn bản đơn giản
var name = editor.AddInput("name");
name.Type = InputElementType.Text;
// Nhập một nút radio
var size = editor.AddInput("size");
size.Type = InputElementType.Radio;
size.HtmlElement.InnerHTML = "Sample Text";
// Nhập nút gửi ở dạng HTML
var button = editor.Add<Forms.ButtonElement>("btn");
button.Value = "submit";
button.HtmlElement.InnerHTML = "Sample Button";
// Thêm nút hiện tại
document.Body.AppendChild(editor.Form);
}
// Lưu biểu mẫu HTML
document.Save("Create-HTML-Form.html");
}
Hơn nữa, dưới đây là một cách tiếp cận khác để tạo biểu mẫu HTML bằng cách sử dụng phần tử biểu mẫu HTML gốc trong C#:
// Tạo Biểu mẫu HTML bằng cách sử dụng API HTML gốc
using (var document = new Aspose.Html.HTMLDocument())
{
var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
var body = document.Body;
// tạo phần tử biểu mẫu
var form = (HTMLFormElement)document.CreateElement("form");
// form.Action = "action_page.php";
// Tạo nhãn FirstName
var label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "First name:";
label.For = "fname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Tạo trường 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"));
// Tạo nhãn LastName
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Last name:";
label.For = "lname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Tạo trường 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"));
// Tạo trường RadioButton
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio1";
input.Name = "Topping";
form.AppendChild(input);
// Tạo nhãn 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"));
// Tạo trường RadioButton
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio2";
input.Name = "Topping";
form.AppendChild(input);
// Tạo nhãn 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"));
// Tạo nút Gửi
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "submit";
input.Value = "Submit";
form.AppendChild(input);
body.AppendChild(form);
document.Save(dataDir + "Create-HTML-Form.html");
}
Ảnh chụp màn hình sau đây cho thấy biểu mẫu HTML đầu ra được tạo bằng đoạn mã trên:
Điền vào biểu mẫu HTML với nút gửi trong C#
Bạn đã khám phá cách tạo một biểu mẫu HTML. Bây giờ bạn có thể tìm hiểu cách điền vào biểu mẫu HTML và gửi dữ liệu đến bất kỳ máy chủ từ xa nào trực tiếp từ ứng dụng C# của bạn. Bạn có thể lặp lại các mục khác nhau trong biểu mẫu và sau đó sử dụng nút Gửi để gửi dữ liệu. Tại đây, bạn sẽ làm việc với mẫu biểu mẫu được tạo bởi httpbin.org. Nó bao gồm điền vào các nút Văn bản, Đài phát thanh cũng như Hộp kiểm mà bạn đang tìm hiểu bên dưới:
Chọn Giá trị trong Hộp kiểm Loại Nhập liệu
Hộp kiểm rất hữu ích khi bạn cần chọn nhiều tùy chọn. Bạn có thể dễ dàng chọn giá trị trong hộp kiểm loại đầu vào với mã sau:
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)
{
// Chọn cả hai tùy chọn hành tây và pho mát trong Hộp kiểm
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
Điền vào Trường Văn bản và Đài phát thanh Kiểu nhập
Biểu mẫu HTML có thể chứa một số hộp văn bản và các trường nút radio để thu thập dữ liệu. Bạn có thể điền vào văn bản đầu vào bằng mã sau:
// Bạn có thể điền dữ liệu bằng cách sử dụng quyền truy cập trực tiếp vào các phần tử đầu vào, như sau:
editor["custname"].Value = "Aspose";
// hoặc cái này:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// hoặc thậm chí bằng cách thực hiện một hoạt động hàng loạt, như sau:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
Tương tự như vậy, bạn có thể chọn các trường nút radio với mã bên dưới:
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)
{
// Chọn kích thước vừa bằng trong nút Radio
if (input.Value == "medium")
{
input.SetRadioValue(true);
}
}
Gửi dữ liệu bằng nút gửi trong HTML
Bạn có thể gửi dữ liệu đã điền ở dạng HTML bằng nút Gửi bằng cách sử dụng lớp FormSubmitter. Đoạn mã sau cho biết cách gọi phương thức Gửi() trong mã C#:
// Tạo một phiên bản của trình gửi biểu mẫu
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);
// Gửi dữ liệu biểu mẫu đến máy chủ từ xa.
// Nếu bạn cần, bạn có thể chỉ định thông tin người dùng và thời gian chờ cho yêu cầu, v.v. bằng các phương thức quá tải
var result = submitter.Submit();
Mã nguồn
Dưới đây là mã nguồn hoàn chỉnh để điền các biểu mẫu HTML theo chương trình bằng C#:
// Khởi tạo một phiên bản của tài liệu HTML từ url 'https://httpbin.org/forms/post'
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
// Tạo một phiên bản của Trình chỉnh sửa biểu mẫu
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)
{
// Chọn kích thước vừa bằng trong nút 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)
{
// Chọn cả hai tùy chọn hành tây và pho mát trong Hộp kiểm
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
// Bạn có thể điền dữ liệu bằng cách sử dụng quyền truy cập trực tiếp vào các phần tử đầu vào, như sau:
editor["custname"].Value = "Aspose";
// hoặc cái này:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// hoặc thậm chí bằng cách thực hiện một hoạt động hàng loạt, như sau:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
// Tạo một phiên bản của trình gửi biểu mẫu
using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
{
// Gửi dữ liệu biểu mẫu đến máy chủ từ xa.
// Nếu cần, bạn có thể chỉ định thông tin người dùng và thời gian chờ cho yêu cầu, v.v.
var result = submitter.Submit();
// Kiểm tra trạng thái của đối tượng kết quả
if (result.IsSuccess)
{
// Kiểm tra xem kết quả có ở định dạng json không
if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
{
// Kết xuất dữ liệu kết quả vào bảng điều khiển
Console.WriteLine(result.Content.ReadAsString());
}
else
{
// Tải dữ liệu kết quả dưới dạng tài liệu HTML
using (var resultDocument = result.LoadDocument())
{
// Kiểm tra tài liệu HTML tại đây.
}
}
}
}
}
}
Giấy phép API miễn phí
Bạn có thể đánh giá Aspose.HTML for .NET API mà không có bất kỳ Giới hạn Đánh giá nào bằng cách yêu cầu Giấy phép Tạm thời Miễn phí.
Sự kết luận
Tóm lại, bạn đã học cách tạo một biểu mẫu HTML từ đầu, cũng như cách điền vào một biểu mẫu HTML hiện có và gửi dữ liệu đến một máy chủ từ xa từ ứng dụng C# của bạn. Bạn cũng có thể truy cập phần Tài liệu để khám phá một số tính năng khác. Vui lòng liên hệ với chúng tôi tại Diễn đàn hỗ trợ miễn phí nếu bạn có bất kỳ thắc mắc nào.