Formularze HTML są często używane do uzyskiwania danych od użytkowników. Możesz wypełnić różne pola formularza zawierające pole wyboru, tekst, radio i przycisk Prześlij do wprowadzenia. Formularz HTML można utworzyć lub wypełnić programowo przy użyciu języka C#. Ten artykuł obejmuje następujące sekcje związane z formularzami HTML:
- Utwórz lub wypełnij formularz HTML — instalacja interfejsu API języka C#
- Utwórz programowo formularz HTML przy użyciu języka C#
- Wypełnij formularz HTML za pomocą przycisku Prześlij w C#
- Bezpłatna licencja API
Utwórz lub wypełnij formularz HTML — instalacja interfejsu API języka C#
Aspose.HTML for .NET API pozwala programowo tworzyć lub wypełniać formularze HTML za pomocą przycisków Prześlij przy użyciu języka C#. Możesz skonfigurować API, pobierając plik DLL z sekcji Downloads lub szybko zainstalować go za pomocą następującego polecenia instalacyjnego NuGet:
PM> Install-Package Aspose.Html
Utwórz programowo formularz HTML przy użyciu języka C#
Formularz HTML można utworzyć programowo przy użyciu języka C#. Aby utworzyć go od podstaw, wykonaj poniższe czynności:
- Zainicjuj instancję klasy HTMLDocument.
- Utwórz nowy formularz HTML metodą CreateNew.
- Wprowadź proste pole tekstowe.
- Utwórz element wejściowy przycisku radiowego.
- Wprowadź przycisk przesyłania w formacie HTML i dodaj bieżące węzły.
- Zapisz formularz HTML.
Poniższy kod pokazuje, jak programowo utworzyć formularz HTML przy użyciu języka C#:
// Zainicjuj instancję klasy HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
// Utwórz nowy formularz HTML za pomocą metody CreateNew().
using (var editor = FormEditor.CreateNew(document))
{
// Wprowadź proste pole tekstowe
var name = editor.AddInput("name");
name.Type = InputElementType.Text;
// Wprowadź przycisk radiowy
var size = editor.AddInput("size");
size.Type = InputElementType.Radio;
size.HtmlElement.InnerHTML = "Sample Text";
// Wprowadź przycisk przesyłania w formacie HTML
var button = editor.Add<Forms.ButtonElement>("btn");
button.Value = "submit";
button.HtmlElement.InnerHTML = "Sample Button";
// Dodaje bieżący węzeł
document.Body.AppendChild(editor.Form);
}
// Zapisz formularz HTML
document.Save("Create-HTML-Form.html");
}
Ponadto poniżej przedstawiono inne podejście do tworzenia formularza HTML przy użyciu natywnego elementu formularza HTML w języku C#:
// Utwórz formularz HTML przy użyciu natywnego interfejsu API HTML
using (var document = new Aspose.Html.HTMLDocument())
{
var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
var body = document.Body;
// utwórz element formularza
var form = (HTMLFormElement)document.CreateElement("form");
// form.Action = "action_page.php";
// Utwórz etykietę Imię
var label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "First name:";
label.For = "fname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Utwórz pole Imię
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"));
// Utwórz etykietę Nazwisko
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Last name:";
label.For = "lname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Utwórz pole Nazwisko
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"));
// Utwórz pole RadioButton
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio1";
input.Name = "Topping";
form.AppendChild(input);
// Utwórz etykietę 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"));
// Utwórz pole RadioButton
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio2";
input.Name = "Topping";
form.AppendChild(input);
// Utwórz etykietę 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"));
// Utwórz przycisk Prześlij
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "submit";
input.Value = "Submit";
form.AppendChild(input);
body.AppendChild(form);
document.Save(dataDir + "Create-HTML-Form.html");
}
Poniższy zrzut ekranu pokazuje wyjściowy formularz HTML utworzony za pomocą powyższego fragmentu kodu:
Wypełnij formularz HTML przyciskiem Prześlij w C#
Poznałeś już sposób tworzenia formularza HTML. Teraz możesz dowiedzieć się, jak wypełnić formularz HTML i wysłać dane do dowolnego zdalnego serwera bezpośrednio z aplikacji C#. Możesz przeglądać różne pozycje w formularzu, a następnie użyć przycisku Prześlij do wysłania danych. Tutaj będziesz pracować z template form stworzonym przez httpbin.org. Obejmuje wypełnianie tekstu, przycisków radiowych, a także pól wyboru, których uczysz się poniżej:
Zaznacz pole wyboru Wartość w polu Typ wejścia
Pola wyboru są przydatne, gdy trzeba wybrać więcej niż jedną opcję. Możesz łatwo wybrać wartość w polu wyboru typu wejścia za pomocą następującego kodu:
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)
{
// Wybierz obie opcje z cebulą i serem w polach wyboru
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
Wypełnij pola tekstowe typu wejściowego i radiowe
Formularz HTML może zawierać kilka pól tekstowych i pól opcji służących do gromadzenia danych. Możesz wypełnić tekst wejściowy następującym kodem:
// Możesz uzupełnić dane, korzystając z bezpośredniego dostępu do elementów wejściowych, na przykład:
editor["custname"].Value = "Aspose";
// albo to:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// lub nawet wykonując operację zbiorczą, taką jak ta:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
Podobnie możesz wybrać pola przycisków radiowych za pomocą poniższego kodu:
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)
{
// Wybierz średni jako rozmiar w przycisku opcji
if (input.Value == "medium")
{
input.SetRadioValue(true);
}
}
Wysyłanie danych za pomocą przycisku Prześlij w formacie HTML
Możesz wysłać wypełnione dane w formularzu HTML przyciskiem Wyślij używając klasy FormSubmitter. Poniższy kod pokazuje, jak wywołać metodę Submit() w kodzie C#:
// Utwórz instancję osoby przesyłającej formularz
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);
// Prześlij dane formularza na zdalny serwer.
// Jeśli potrzebujesz, możesz określić poświadczenia użytkownika i limit czasu dla żądania itp. Za pomocą metod przeciążenia
var result = submitter.Submit();
Kod źródłowy
Poniżej znajduje się pełny kod źródłowy do programowego wypełniania formularzy HTML przy użyciu języka C#:
// Zainicjuj instancję dokumentu HTML z adresu URL „https://httpbin.org/forms/post”.
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
// Utwórz instancję Edytora formularzy
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)
{
// Wybierz średni jako rozmiar w przycisku opcji
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)
{
// Wybierz obie opcje z cebulą i serem w polach wyboru
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
// Możesz uzupełnić dane, korzystając z bezpośredniego dostępu do elementów wejściowych, na przykład:
editor["custname"].Value = "Aspose";
// albo to:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// lub nawet wykonując operację zbiorczą, taką jak ta:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
// Utwórz instancję osoby przesyłającej formularz
using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
{
// Prześlij dane formularza na zdalny serwer.
// Jeśli potrzebujesz, możesz określić poświadczenia użytkownika i limit czasu dla żądania itp.
var result = submitter.Submit();
// Sprawdź status obiektu wynikowego
if (result.IsSuccess)
{
// Sprawdź, czy wynik jest w formacie json
if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
{
// Zrzuć dane wyników do konsoli
Console.WriteLine(result.Content.ReadAsString());
}
else
{
// Załaduj dane wynikowe jako dokument HTML
using (var resultDocument = result.LoadDocument())
{
// Sprawdź dokument HTML tutaj.
}
}
}
}
}
}
Bezpłatna licencja API
Możesz ocenić Aspose.HTML for .NET API bez żadnych ograniczeń oceny, prosząc o bezpłatną licencję tymczasową.
Wniosek
Podsumowując, nauczyłeś się, jak utworzyć formularz HTML od podstaw, a także jak wypełnić istniejący formularz HTML i wysłać dane na zdalny serwer z aplikacji C#. Możesz także odwiedzić sekcję Dokumentacja, aby zapoznać się z kilkoma innymi funkcjami. Prosimy o kontakt z nami na Bezpłatne forum pomocy technicznej w przypadku jakichkolwiek pytań.