3
입니다. 하지만 각 ViewModel에 DataAnnotation을 정의 할 수는 없기 때문에 많은 작업이 필요합니다. 대신 사용자 도메인 모델에 적용하고 싶습니다. 그렇다면 컨트롤러에 코드를 추가하지 않고도 내 주석 작업 및 매퍼로 수정하는 Create 메소드를 수정하는 방법은 무엇입니까?
// 내 컨트롤러 만들기 방법
[HttpPost]
public ActionResult Create(UserCreateViewModel user)
{
if (ModelState.IsValid)
{
var createUser = new User();
Mapper.Map(user, createUser);
_repository.Add(createUser);
return RedirectToAction("Details", new { id = createUser.UserId });
}
return View("Edit", user);
}
// UserCreateViewModel -> 특정 뷰 모델을 작성
public class UserCreateViewModel
{
public string UserName { get; set; }
public string Password { get; set; }
}
// 사용자 -> 도메인 개체
[MetadataType(typeof(User.UserValidation))]
public partial class User
{
private class UserValidation
{
[Required(ErrorMessage = "UserName is required.")]
[StringLength(50, MinimumLength = 2, ErrorMessage = "{0} is between {1} to {2}")]
[RegularExpression(@"(\S)+", ErrorMessage = "White space is not allowed")]
public string UserName { get; set; }
[Required(ErrorMessage = "Password is required.")]
[StringLength(50, MinimumLength = 2, ErrorMessage = "{0} is between {1} to {2}")]
public string Password { get; set; }
}
}