2010-03-27 6 views
1

첫 번째 MVC 프로젝트로 아주 간단한 포럼을 만들고 있습니다. 내 데이터베이스 레이아웃은 오히려 간단하다 : 나는 스레드의 목록을 표시하기위한 ForumThread에 대한 뷰를 작성하고 새로운 스레드를 만들 수 있도록mvc.net에서 간단한 포럼 만들기

[ForumThread] 
Id 
Title 

[ForumPost] 
Id 
ThreadId 
Message 
ParentId // To tell which post this post should hang on to 
Created 
CreatedBy 
Updated 
UpdatedBy 

.

ForumThread의 세부 정보보기에서 기본 게시물이있는 스레드를 보여줍니다.

제 질문은 ForumThread 세부 정보보기에서 내가 가장 쉬운 방법인데, 다른 페이지로 먼저 이동하지 않고도 ForumPost를 만들 수있는보기를 표시 할 수 있습니까?

답변

1

당신은 포럼 게시물을 만들 수 있도록 양식을 포함하는 부분보기 (의 .ascx)을 작성하고 세부에서이 부분을 포함 할 수있다보기 : 대린에 의해 언급 한 바와 같이

<% Html.RenderPartial("~/Views/Home/PostForm.ascx"); %> 
+0

감사합니다. 그러나 다음과 같은 오류가 발생했습니다. 사전에 전달 된 모델 항목의 형식이 'SampleWebsite.Models.Forum.ForumThreadModel'이지만이 사전에는 'SampleWebsite'유형의 모델 항목이 필요합니다. ForumPost '. – Dofs

+0

부분에 다른 모델을 전달할 수 있습니다 :'<% Html.RenderPartial ("~/Views/Home/PostForm.ascx", Model.ForumPost); %>'올바른 유형이어야합니다. –

1

, 당신은 단순히 필요 부분보기 - 해당보기 내에서 양식을 구현하고 다른 모델에 바인드 할 수 있으며 필요한 경우 다른 컨트롤러에서 모든 이벤트 등을 처리 할 수 ​​있습니다.

기능 영역을 부분 뷰로 캡슐화하여 코드를 깨끗하게 유지하고 해당 양식을 다시 사용해야 할 필요가있는 경우 DRY (Do not Repeat Yourself) 원칙을 따르십시오. 필요한 다른 Html.RenderPartial() 호출.