채우기 HTML 양식 만들기 C# 제출

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 양식을 만들 수 있습니다. 처음부터 만들려면 아래 단계를 따르세요.

  1. HTMLDocument 클래스의 인스턴스를 초기화합니다.
  2. CreateNew 메소드로 새로운 HTML 폼을 생성합니다.
  3. 단순 텍스트 유형 필드를 입력합니다.
  4. 라디오 버튼 입력 요소를 만듭니다.
  5. 제출 버튼을 HTML 형식으로 입력하고 현재 노드를 추가합니다.
  6. 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 양식을 보여줍니다.

HTML 양식 제출 Btn 만들기

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# 응용 프로그램에서 원격 서버로 데이터를 보내는 방법을 배웠습니다. 문서 섹션을 방문하여 다른 여러 기능을 탐색할 수도 있습니다. 궁금한 사항은 무료 지원 포럼으로 문의해 주시기 바랍니다.

또한보십시오