HTML-formulär används ofta för att få input från användarna. Du kan fylla i olika formulärfält som innehåller kryssruta, text, radio och knappen Skicka för inmatning. Du kan skapa eller fylla i HTML-formuläret programmatiskt med C#-språket. Den här artikeln täcker följande avsnitt relaterade till HTML-formulär:
- Skapa eller fyll i HTML-formulär - C# API-installation
- Skapa ett HTML-formulär programmatiskt med C#
- Fyll i HTML-formulär med Skicka-knappen i C#
- Gratis API-licens
Skapa eller fyll i HTML-formulär - C# API-installation
Aspose.HTML for .NET API låter dig skapa eller fylla HTML-formulär med Skicka-knappar programmatiskt med C#-språket. Du kan konfigurera API:et genom att ladda ner en DLL-fil från avsnittet Nedladdningar eller snabbt installera det med följande installationskommando NuGet:
PM> Install-Package Aspose.Html
Skapa ett HTML-formulär programmatiskt med C#
Du kan skapa ett HTML-formulär programmatiskt med C#-språket. Följ stegen nedan för att skapa den från början:
- Initiera en instans av klassen HTMLDocument.
- Skapa nytt HTML-formulär med metoden CreateNew.
- Mata in enkel texttypsfält.
- Skapa ett alternativknappsinmatningselement.
- Inmatningsknapp i HTML-form och lägg till aktuella noder.
- Spara HTML-formulär.
Följande kod visar hur man skapar ett HTML-formulär programmatiskt med C#:
// Initiera en instans av HTMLDocument-klassen
using (HTMLDocument document = new HTMLDocument())
{
// Skapa nytt HTML-formulär med metoden CreateNew().
using (var editor = FormEditor.CreateNew(document))
{
// Mata in enkel texttypsfält
var name = editor.AddInput("name");
name.Type = InputElementType.Text;
// Mata in en alternativknapp
var size = editor.AddInput("size");
size.Type = InputElementType.Radio;
size.HtmlElement.InnerHTML = "Sample Text";
// Inmatningsknapp i HTML-form
var button = editor.Add<Forms.ButtonElement>("btn");
button.Value = "submit";
button.HtmlElement.InnerHTML = "Sample Button";
// Lägger till den aktuella noden
document.Body.AppendChild(editor.Form);
}
// Spara HTML-formulär
document.Save("Create-HTML-Form.html");
}
Dessutom, nedan är en annan metod för att skapa HTML-formulär med inbyggt HTML-formulärelement i C#:
// Skapa ett HTML-formulär med hjälp av inbyggt HTML-API
using (var document = new Aspose.Html.HTMLDocument())
{
var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
var body = document.Body;
// skapa formelement
var form = (HTMLFormElement)document.CreateElement("form");
// form.Action = "action_page.php";
// Skapa FirstName-etikett
var label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "First name:";
label.For = "fname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Skapa förnamnsfält
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"));
// Skapa efternamnsetikett
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Last name:";
label.For = "lname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Skapa efternamnsfält
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"));
// Skapa RadioButton-fält
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio1";
input.Name = "Topping";
form.AppendChild(input);
// Skapa RadioButton-etikett
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Male";
label.For = "radio1";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Skapa RadioButton-fält
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio2";
input.Name = "Topping";
form.AppendChild(input);
// Skapa RadioButton-etikett
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Female";
label.For = "radio2";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
form.AppendChild(document.CreateElement("br"));
// Skapa Skicka-knapp
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "submit";
input.Value = "Submit";
form.AppendChild(input);
body.AppendChild(form);
document.Save(dataDir + "Create-HTML-Form.html");
}
Följande skärmdump visar HTML-formuläret som skapats med ovanstående kodavsnitt:
Fyll i HTML-formulär med Skicka-knappen i C#
Du har redan utforskat hur man skapar ett HTML-formulär. Nu kan du lära dig hur du fyller i HTML-formulär och skickar data till valfri fjärrserver direkt från din C#-applikation. Du kan iterera genom olika poster i formuläret och sedan använda knappen Skicka för att skicka data. Här kommer du att arbeta med ett mallformulär skapat av httpbin.org. Det inkluderar att fylla i text, alternativknappar samt kryssrutor som du lär dig nedan:
Markera kryssrutan Value in Input Type
Kryssrutor är användbara när du behöver välja mer än ett alternativ. Du kan enkelt markera värdet i kryssrutan ingångstyp med följande kod:
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)
{
// Välj lök och ost båda alternativen i kryssrutorna
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
Fyll i fältet Input Type Text och Radio
Ett HTML-formulär kan innehålla flera textrutor och alternativknappsfält för insamling av data. Du kan fylla den inmatade texten med följande kod:
// Du kan fylla i data med direktåtkomst till inmatningselementen, så här:
editor["custname"].Value = "Aspose";
// eller det här:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// eller till och med genom att utföra en bulkoperation, som den här:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
På samma sätt kan du välja alternativknappsfält med koden nedan:
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)
{
// Välj medium som storlek i radioknappen
if (input.Value == "medium")
{
input.SetRadioValue(true);
}
}
Skickar data med Skicka-knappen i HTML
Du kan skicka ifylld data i HTML-formulär med knappen Skicka genom att använda klassen FormSubmitter. Följande kod visar hur man anropar metoden Submit() i C#-kod:
// Skapa en instans av avsändare av formulär
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);
// Skicka formulärdata till fjärrservern.
// Om du behöver kan du ange användaruppgifter och timeout för begäran, etc. med överbelastningsmetoder
var result = submitter.Submit();
Källkod
Nedan är den fullständiga källkoden för att fylla i HTML-formulär programmatiskt med C#:
// Initiera en instans av HTML-dokument från webbadressen 'https://httpbin.org/forms/post'
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
// Skapa en instans av 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)
{
// Välj medium som storlek i radioknappen
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)
{
// Välj lök och ost båda alternativen i kryssrutorna
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
// Du kan fylla i data med direktåtkomst till inmatningselementen, så här:
editor["custname"].Value = "Aspose";
// eller det här:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// eller till och med genom att utföra en bulkoperation, som den här:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
// Skapa en instans av avsändare av formulär
using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
{
// Skicka formulärdata till fjärrservern.
// Om du behöver kan du ange användaruppgifter och timeout för begäran, etc.
var result = submitter.Submit();
// Kontrollera statusen för resultatobjektet
if (result.IsSuccess)
{
// Kontrollera om resultatet är i json-format
if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
{
// Dumpa resultatdata till konsolen
Console.WriteLine(result.Content.ReadAsString());
}
else
{
// Ladda resultatdata som ett HTML-dokument
using (var resultDocument = result.LoadDocument())
{
// Inspektera HTML-dokumentet här.
}
}
}
}
}
}
Gratis API-licens
Du kan utvärdera Aspose.HTML för .NET API utan några utvärderingsbegränsningar genom att begära en Free Temporary License.
Slutsats
Sammanfattningsvis har du lärt dig hur du skapar ett HTML-formulär från grunden, samt hur du fyller i ett befintligt HTML-formulär och skickar data till en fjärrserver från din C#-applikation. Du kan också besöka avsnittet Dokumentation för att utforska flera andra funktioner. Kontakta oss gärna på Free Support Forum för alla dina frågor.