728x90
반응형
728x170
▶ 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 />
@using(Html.BeginForm())
{
<div>@Html.ValidationSummary(false)</div>
<p>
@Html.LabelFor(model => model.Name)
@Html.TextBoxFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</p>
<p>
@Html.LabelFor(model => model.Content)
@Html.TextBoxFor(model => model.Content)
@Html.ValidationMessageFor(model => model.Content)
</p>
<p><input type="submit" value="제출" /></p>
}
<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
반응형
그리드형(광고전용)
'C# > ASP.NET MVC' 카테고리의 다른 글
[C#/ASP.NET MVC] TagHelper 클래스 : <b><u> 태그로 둘러싸는 문자열을 생성하는 사용자 정의 태그 헬퍼 만들기 (0) | 2020.10.07 |
---|---|
[C#/ASP.NET MVC] @tagHelperPrefix 지시문 : 내장 태그 헬퍼에 접두사 붙이기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] asp-controller/asp-actio 태그 헬퍼를 사용해 링크 만들기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] <environment> 태그 : ASPNETCORE_ENVIRONMENT 환경 변수 값에 따라 태그 생성하기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] 태그 헬퍼를 사용해 폼 구성하기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] 모델 기반의 클라이언트측 유효성 검사를 사용해 폼 구성하기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] 모델 기반의 서버측 유효성 검사를 사용해 폼 구성하기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] 강력한 형식의 뷰와 모델 바인딩을 사용해 폼 구성하기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] 헬퍼 메소드를 사용해 폼 구성하기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] 순수 HTML 태그를 사용해 폼 구성하기 (0) | 2020.10.07 |
[C#/ASP.NET MVC] HtmlHelperPartialExtensions 클래스 : Partial 확장 메소드를 사용해 부분 뷰(Partial View) 표시하기 (0) | 2020.10.06 |
댓글을 달아 주세요