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"));
// RadioButton 필드 생성
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"));
// RadioButton 필드 생성
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 라이선스
무료 임시 라이선스를 요청하여 평가 제한 없이 .NET API용 Aspose.HTML을 평가할 수 있습니다.
결론
결론적으로 HTML 양식을 처음부터 만드는 방법과 기존 HTML 양식을 채우고 C# 응용 프로그램에서 원격 서버로 데이터를 보내는 방법을 배웠습니다. 문서 섹션을 방문하여 다른 여러 기능을 탐색할 수도 있습니다. 궁금한 사항은 무료 지원 포럼으로 문의해 주시기 바랍니다.