0

문제점이 있으며 MVC를 처음 사용하기 때문에 어디서부터 시작해야할지 모르겠습니다.MVC3에서 여러 선택을 사용하여 사용자에게 서비스 추가

  • 사용자 (사용자 ID, 사용자 이름 등) 이 사용자 정의 : 나는 세 개의 테이블이있다.
  • 서비스 (ServiceID, ServiceName 등 ...) 이것은 서비스를 정의합니다.
  • (ID, 사용자 ID, 서비스 ID 등) 서비스를 사용자에게 매핑합니다.

백엔드에서 사용자는 라이센스가있는 경우 서비스에 액세스 할 수 있습니다. 이상적으로는 EditUser보기에서 라이센스를 가져야하는 서비스를 확인할 수있는 서비스 목록이 필요합니다.

이 목록에는 현재 라이센스가 미리 채워 져야하며 체크되지 않은 채로 저장되어 있으면 삭제해야합니다.

라이센스를 추가하고 제거하는 모든 방법이 있지만 컨트롤러 및 뷰에서이를 구현하는 방법을 알아야합니다.

미리 감사드립니다. 모든

답변

2

첫째는 뷰 모델

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와 유형이 지정된 뷰합니다. 이 경우 이름을 바꾸고 "편집"접두사를 제거 할 수 있습니다.

의견에 대답을 명확히하기 위해 업데이트하십시오. 규칙 :보기 모델을 작고, 어리 석고 간단하게 유지하십시오. 메소드, 기능 또는 인텔리전스가 없으며 디스플레이 프로세스에서 도움이되는 몇 가지 속성 만 있습니다. EditUserDisplayUser보기와 같이 매우 유사한보기에서만보기 모델을 다시 사용하고 싶을 것입니다. DisplayServices보기와 다른보기 모델을 사용하게됩니다.

+0

감사합니다. 도움이됩니다. 보기 모델은 앞으로 나아갈 길입니다. 그 안에 모든 것을 가진 단일 뷰 모델을 갖고있는 것이 더 좋을까요, 아니면 서로 다른 뷰를위한 많은 특정 뷰 모델을 가지고있는 것이 더 낫습니다. – TheGwa

+0

@TheGwa - 오신 것을 환영합니다. editUser 뷰에 대해 와트가 좋지는 않을 것이므로 EditServices 뷰에 적합 할 것이므로 여러 뷰 모델을 갖게 될 것입니다. 엄지 손가락의 규칙 : 그들을 작고, 멍청하고 단순하게 유지하십시오. 메소드, 기능 또는 인텔리전스가 없으며 디스플레이 프로세스에서 도움이되는 몇 가지 속성 만 있습니다. –