2012-06-06 8 views
0

MVC를 사용하여 수의과 클리닉에서 사용하기위한 기본 응용 프로그램을 작성합니다. 이 응용 프로그램에는 직원이 애완 동물의 약속 기록을보고 약속을 추가 할 수있는 화면이 있습니다.내 뷰 모델을 어떻게 채울 수 있습니까?

역사 부분이 배선되어 잘 작동합니다. 모든 이전 약속 목록을보고 각각의 약속으로 이동하여 세부 사항을 볼 수 있습니다.

문제는 새로운 약속을 추가하는 것입니다. 이 ActionLink는 약속 컨트롤러의 생성 작용에 현재 모델에서 애완 동물의 ID를 전달

@Html.ActionLink("Add Appointment", "Create", "Appointment", new { id = Model.Id }, null) 

: 애완 동물 컨트롤러의 편집 뷰는 다음과 같은 액션 링크가 있습니다. 애완 동물 ID는 필요합니다. DB가 애완 동물과 약속을 연결하는 방법이기 때문입니다.

약속 컨트롤러의 만들기보기에서 사용되는보기 모델에는 애완 동물 및 약속 속성이 있습니다.

뷰 모델의 속성을 채우려면 어떻게해야합니까? Appointment 컨트롤러의 Create 뷰를 사용하여 Appointment를 만들지 만 Create 화면 (이름, 나이, 종 등)에 다양한 Pet 속성을 표시해야합니다. 그것들은 뷰 모델의 Pet 속성에 있습니다. 뷰 모델에서 ActionLink로 전달 된 ID에서 수화 된 Pet 객체로 이동하려면 어떻게해야합니까? 필요한 모든 Pet 속성이 Pet 컨트롤러의 편집보기에 사용되는 모델에 있기 때문에 데이터베이스에 대한 다른 여행이 필요 없다고 생각합니다.

고마워요!

MVC 4 RC는

답변

1

당신은 채울 당신의 ModelControllerAction 내에서.

public ActionResult Create(string id){ 

    MyModel myModel = new MyModel(); 
    myModel.Foo = "Bar"; 
    return View(myModel); 

} 

컨트롤러 내부에서 발생하는 서비스 호출로 서비스 계층에 채울 수 있습니다. 그런 다음보기로 전송 될 모델을 다시 전달합니다.

public ActionResult Create(string id){ 

    // Some service inteface to interact with the data store to populate model 
    MyModel myModel = service.GetMyModel(); 
    return View(myModel); 

} 
0

서버로부터 응답을 받으면 데이터베이스 연결이 닫힙니다. 다른 페이지로 리디렉션하는 경우 필요에 따라 다른 DB 호출을 수행해야합니다.

관련 문제