■ 태그 헬퍼를 사용해 폼을 구성하는 방법을 보여준다.
▶ Models/TestModel.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
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 } } |
▶ Controllers/TestController.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
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 } } |
▶ Views/Test/Index.cshtml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
@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
1 2 3 4 5 6 7 8 9 10 |
@{ Layout = null; } <p>모델 기반의 서버측 유효성 검사를 사용해 폼 구성하기</p> <hr /> <script> alert("제출이 완료되었습니다."); </script> |