Os formulários HTML são frequentemente usados para obter informações dos usuários. Você pode preencher diferentes campos de formulário contendo Caixa de seleção, Texto, Rádio e botão Enviar para entrada. Você pode criar ou preencher o formulário HTML programaticamente usando a linguagem C#. Este artigo abrange as seguintes seções relacionadas a formulários HTML:
- Criar ou preencher formulário HTML - Instalação da API C#
- Criar um formulário HTML programaticamente usando C#
- Preencha o formulário HTML com o botão Enviar em C#
- Licença API gratuita
Criar ou preencher formulário HTML - Instalação da API C#
Aspose.HTML for .NET API permite criar ou preencher formulários HTML com botões Enviar programaticamente usando a linguagem C#. Você pode configurar a API baixando um arquivo DLL da seção Downloads ou instalá-lo rapidamente com o seguinte comando de instalação NuGet:
PM> Install-Package Aspose.Html
Criar um formulário HTML programaticamente usando C#
Você pode criar um formulário HTML programaticamente usando a linguagem C#. Por favor, siga os passos abaixo para criá-lo do zero:
- Inicialize uma instância da classe HTMLDocument.
- Crie um novo formulário HTML com o método CreateNew.
- Insira o campo de tipo de texto simples.
- Crie um elemento de entrada de botão de opção.
- Insira o botão de envio no formulário HTML e adicione os nós atuais.
- Salvar formulário HTML.
O código a seguir mostra como criar um formulário HTML programaticamente usando C#:
// Inicialize uma instância da classe HTMLDocument
using (HTMLDocument document = new HTMLDocument())
{
// Crie um novo formulário HTML com o método CreateNew()
using (var editor = FormEditor.CreateNew(document))
{
// Insira o campo de tipo de texto simples
var name = editor.AddInput("name");
name.Type = InputElementType.Text;
// Insira um botão de rádio
var size = editor.AddInput("size");
size.Type = InputElementType.Radio;
size.HtmlElement.InnerHTML = "Sample Text";
// Botão de envio de entrada no formulário HTML
var button = editor.Add<Forms.ButtonElement>("btn");
button.Value = "submit";
button.HtmlElement.InnerHTML = "Sample Button";
// Adiciona o nó atual
document.Body.AppendChild(editor.Form);
}
// Salvar formulário HTML
document.Save("Create-HTML-Form.html");
}
Além disso, abaixo está outra abordagem para criar formulário HTML usando o elemento de formulário HTML nativo em C#:
// Criar um formulário HTML usando a API HTML nativa
using (var document = new Aspose.Html.HTMLDocument())
{
var editor = Aspose.Html.Forms.FormEditor.CreateNew(document);
var body = document.Body;
// criar elemento de formulário
var form = (HTMLFormElement)document.CreateElement("form");
// form.Action = "action_page.php";
// Criar rótulo FirstName
var label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "First name:";
label.For = "fname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Criar campo 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"));
// Criar rótulo de sobrenome
label = (HTMLLabelElement)document.CreateElement("label");
label.TextContent = "Last name:";
label.For = "lname";
form.AppendChild(label);
form.AppendChild(document.CreateElement("br"));
// Criar campo sobrenome
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"));
// Criar campo RadioButton
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio1";
input.Name = "Topping";
form.AppendChild(input);
// Criar rótulo 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"));
// Criar campo RadioButton
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "radio";
input.Id = "radio2";
input.Name = "Topping";
form.AppendChild(input);
// Criar rótulo 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"));
// Botão Criar Enviar
input = (HTMLInputElement)document.CreateElement("input");
input.Type = "submit";
input.Value = "Submit";
form.AppendChild(input);
body.AppendChild(form);
document.Save(dataDir + "Create-HTML-Form.html");
}
A captura de tela a seguir mostra o formulário HTML de saída criado com o snippet de código acima:
Preencha o formulário HTML com o botão Enviar em C#
Você já explorou como criar um formulário HTML. Agora você pode aprender a preencher formulários HTML e enviar os dados para qualquer servidor remoto diretamente de seu aplicativo C#. Você pode percorrer diferentes itens no formulário e, em seguida, usar o botão Enviar para enviar os dados. Aqui você estará trabalhando com um modelo de formulário criado por httpbin.org. Inclui preenchimento de texto, botões de opção, bem como caixas de seleção que você está aprendendo abaixo:
Marque a caixa de seleção Valor no tipo de entrada
As caixas de seleção são úteis quando você precisa escolher mais de uma opção. Você pode selecionar facilmente o valor na caixa de seleção do tipo de entrada com o seguinte código:
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)
{
// Escolha cebola e queijo ambas as opções nas caixas de seleção
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
Preencha o campo de texto e rádio do tipo de entrada
Um formulário HTML pode conter várias caixas de texto e campos de botão de opção para coletar dados. Você pode preencher o texto de entrada com o seguinte código:
// Você pode preencher os dados usando acesso direto aos elementos de entrada, assim:
editor["custname"].Value = "Aspose";
// ou isto:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// ou mesmo realizando uma operação em massa, como esta:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
Da mesma forma, você pode selecionar campos de botão de opção com o código abaixo:
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)
{
// Selecione médio como tamanho no botão Rádio
if (input.Value == "medium")
{
input.SetRadioValue(true);
}
}
Enviando dados com o botão Enviar em HTML
Você pode enviar dados preenchidos em formulário HTML com o botão Enviar usando a classe FormSubmitter. O código a seguir mostra como chamar o método Submit() no código C#:
// Criar uma instância do remetente do formulário
var submitter = new Aspose.Html.Forms.FormSubmitter(editor);
// Envie os dados do formulário para o servidor remoto.
// Se precisar, você pode especificar credenciais de usuário e tempo limite para a solicitação, etc. com métodos de sobrecarga
var result = submitter.Submit();
Código fonte
Abaixo está o código-fonte completo para preencher formulários HTML programaticamente usando C#:
// Inicialize uma instância do documento HTML do URL 'https://httpbin.org/forms/post'
using (var document = new HTMLDocument(@"https://httpbin.org/forms/post"))
{
// Criar uma instância do Editor de formulários
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)
{
// Selecione médio como tamanho no botão Rádio
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)
{
// Escolha cebola e queijo ambas as opções nas caixas de seleção
if (input.Value == "onion" || input.Value == "cheese")
{
input.SetCheckboxValue(true);
}
}
// Você pode preencher os dados usando acesso direto aos elementos de entrada, assim:
editor["custname"].Value = "Aspose";
// ou isto:
var comments = editor.GetElement<Aspose.Html.Forms.TextAreaElement>("comments");
comments.Value = "Extra Ketchup PLEASE!";
// ou mesmo realizando uma operação em massa, como esta:
editor.Fill(new Dictionary<string, string>()
{
{"custemail", "test@test.com"},
{"custtel", "+123-456-789"}
});
// Criar uma instância do remetente do formulário
using (var submitter = new Aspose.Html.Forms.FormSubmitter(editor))
{
// Envie os dados do formulário para o servidor remoto.
// Se precisar, você pode especificar credenciais de usuário e tempo limite para a solicitação, etc.
var result = submitter.Submit();
// Verifique o status do objeto de resultado
if (result.IsSuccess)
{
// Verifique se o resultado está no formato json
if (result.ResponseMessage.Headers.ContentType.MediaType == "application/json")
{
// Despeje os dados do resultado no console
Console.WriteLine(result.Content.ReadAsString());
}
else
{
// Carregar os dados do resultado como um documento HTML
using (var resultDocument = result.LoadDocument())
{
// Inspecione o documento HTML aqui.
}
}
}
}
}
}
Licença API gratuita
Você pode avaliar Aspose.HTML para .NET API sem quaisquer Limitações de Avaliação solicitando uma Licença Temporária Gratuita.
Conclusão
Concluindo, você aprendeu como criar um formulário HTML do zero, bem como preencher um formulário HTML existente e enviar os dados para um servidor remoto de seu aplicativo C#. Você também pode visitar a seção Documentação para explorar vários outros recursos. Sinta-se à vontade para entrar em contato conosco no Fórum de suporte gratuito para qualquer dúvida.