첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
본 블로그는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 블로그 콘텐츠 향상을 위해 쓰여집니다.

728x90
반응형
728x170

TestProject.zip
다운로드

▶ Models/TestModel.cs

using System.ComponentModel.DataAnnotations;

namespace TestProject.Models
{
    /// <summary>
    /// 테스트 모델
    /// </summary>
    public class TestModel
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Property
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region ID - ID

        /// <summary>
        /// ID
        /// </summary>
        public int ID { get; set; }

        #endregion
        #region 성명 - Name

        /// <summary>
        /// 성명
        /// </summary>
        [Display(Name = "성명")]
        [Required(ErrorMessage = "성명을 입력해 주시기 바랍니다.")]
        [StringLength(25, MinimumLength = 1, ErrorMessage = "성명은 1~25자를 입력해 주시기 바랍니다.")]
        public string Name { get; set; }

        #endregion
        #region 내용 - Content

        /// <summary>
        /// 내용
        /// </summary>
        [Display(Name = "내용")]
        [Required(ErrorMessage = "내용을 입력해 주시기 바랍니다.")]
        [StringLength(255, MinimumLength = 1, ErrorMessage = "내용은 1~244자를 입력해 주시기 바랍니다.")]
        public string Content { get; set; }

        #endregion
    }
}

 

728x90

 

▶ Controllers/TestController.cs

using Microsoft.AspNetCore.Mvc;

using TestProject.Models;

namespace TestProject.Controllers
{
    /// <summary>
    /// 테스트 컨트롤러
    /// </summary>
    public class TestController : Controller
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 인덱스 페이지 처리하기 - Index()

        /// <summary>
        /// 인덱스 페이지 처리하기
        /// </summary>
        /// <returns>액션 결과</returns>
        [HttpGet]
        public IActionResult Index()
        {
            return View();
        }

        #endregion
        #region 인덱스 페이지 처리하기 - Index(test)

        /// <summary>
        /// 인덱스 페이지 처리하기
        /// </summary>
        /// <param name="test">테스트</param>
        /// <returns>액션 결과</returns>
        [HttpPost]
        public IActionResult Index(TestModel test)
        {
            if(ModelState.IsValid)
            {
                return View("Completed");
            }

            return View(test);
        }

        #endregion
        #region 완료시 페이지 처리하기 - Completed()

        /// <summary>
        /// 완료시 페이지 처리하기
        /// </summary>
        /// <returns>액션 결과</returns>
        public IActionResult Completed()
        {
            return View();
        }

        #endregion
    }
}

 

300x250

 

▶ Views/Test/Index.cshtml

@model TestProject.Models.TestModel
@{
    Layout = null;
}
<!DOCTYPE html>
<html>
    <head>
        <title>태그 헬퍼를 사용해 폼 구성하기</title>
    </head>
    <body>
        <p>태그 헬퍼를 사용해 폼 구성하기</p>
        <hr />
        <form asp-controller="Test" asp-action="Index" method="post">
            <div asp-validation-summary="ModelOnly" />
            <p>
                <label asp-for="Name" />
                <input asp-for="Name" />
                <span asp-validation-for="Name" />
            </p>
            <p>
                <label asp-for="Content" />
                <input asp-for="Content" />
                <span asp-validation-for="Content" />
            </p>
            <p><input type="submit" value="제출" /></p>
        </form>
        <script src="~/lib/jquery/dist/jquery.js"></script>
        <script src="~/lib/jquery-validation/jquery.validate.js"></script>
        <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>
    </body>
</html>

 

▶ Views/Test/Completed.cshtml

@{
    Layout = null;
}
<p>모델 기반의 서버측 유효성 검사를 사용해 폼 구성하기</p>
<hr />
<script>
    alert("제출이 완료되었습니다.");
</script>
728x90
반응형
그리드형
Posted by 사용자 icodebroker

댓글을 달아 주세요