첫째는 뷰 모델
public class EditUserViewModel
{
public User User { get; set; }
public IList<License> Licenses { get; set; }
public IList<Service> Services { get; set; }
}
전망 모델은 단순히 당신이보기를 표시해야합니다 모든 것을 포함하는 헬퍼 클래스 정의합니다. 그런 다음 행동 :
@model EditUserViewModel
@* //Some html or whatever here *@
@* //Access your model properties as follows *@
@Model.User
@Model.Licenses
@Model.Service
당신은 예를 들어 다른 뷰 된 UserDetails에 대한 EditUserViewModel 클래스를 재사용 할 수 있습니다 :
는
public ActionResult EditUser(int id)
{
var userViewModel = new EditUserViewModel
{
User = // Get user from db
Licenses = // Get licenses for that user
Services = // Getservies the user in entitled to
}
return View(userViewModel);
}
그런 다음 뷰 모델에 대한 EditUserViewModel와 유형이 지정된 뷰합니다. 이 경우 이름을 바꾸고 "편집"접두사를 제거 할 수 있습니다.
의견에 대답을 명확히하기 위해 업데이트하십시오. 규칙 :보기 모델을 작고, 어리 석고 간단하게 유지하십시오. 메소드, 기능 또는 인텔리전스가 없으며 디스플레이 프로세스에서 도움이되는 몇 가지 속성 만 있습니다. EditUser
및 DisplayUser
보기와 같이 매우 유사한보기에서만보기 모델을 다시 사용하고 싶을 것입니다. DisplayServices
보기와 다른보기 모델을 사용하게됩니다.
감사합니다. 도움이됩니다. 보기 모델은 앞으로 나아갈 길입니다. 그 안에 모든 것을 가진 단일 뷰 모델을 갖고있는 것이 더 좋을까요, 아니면 서로 다른 뷰를위한 많은 특정 뷰 모델을 가지고있는 것이 더 낫습니다. – TheGwa
@TheGwa - 오신 것을 환영합니다. editUser 뷰에 대해 와트가 좋지는 않을 것이므로 EditServices 뷰에 적합 할 것이므로 여러 뷰 모델을 갖게 될 것입니다. 엄지 손가락의 규칙 : 그들을 작고, 멍청하고 단순하게 유지하십시오. 메소드, 기능 또는 인텔리전스가 없으며 디스플레이 프로세스에서 도움이되는 몇 가지 속성 만 있습니다. –