2009-04-10 8 views
0

다음과 같은 시나리오를 고려해 부분 뷰 (뷰와 부분적인 전망이 일부 글로벌 데이터에 액세스 할 수 있어야합니다)와 강력한 형식보기 :ASP.NET MVC -

액션 편집()가 Edit.aspx보기로 전달됩니다 렌더링하기 보기. 당신이 원하는

(CheckBox1을하고 checkbox2있다) part1.ascx (TextBox2를을 가지고, textbox3) 및 part2.ascx :

Edit.aspx는 TextBox1에 두 개의 부분 뷰 (일명 뷰 사용자 컨트롤)로 구성 Edit.aspx에 대한 강력한 형식화 된 뷰를 가지려면 EditViewData 클래스를 사용합니다.

또한 Edit.aspx, part1.ascx 및 part2.ascx가 currentUserID, currentUserLanguage, currentUserTimezone과 같은 일부 전역 정보에 액세스 할 수 있어야합니다.

질문 :

  1. 어떻게 당신이 EditViewData 클래스를 구조화 가야합니까?
  2. 양식을 제출하고 Edit() http.post 작업으로 돌아갈 때 개체가 자동으로 채워지도록보기 데이터를보기 및 부분보기에 어떻게 전달합니까?
  3. Edit() http.post 액션에 무엇을 전달합니까?

답변

1

당신을 ViewData는 다음과 같이한다 : 당신이 강하게 당신의 영문을 입력 한 후

public class EditViewData 
{ 
    public int currentUserID { get; set; } 
    public string currentUserLanguage { get; set; } 
    public string currentUserTimezone { get; set; } 
    // ... other stuff 
} 

, 당신은 또한 강력하게 ascxs를 입력해야합니다. 다음 aspx에서 RenderPartial을 호출하면 평소처럼 호출하십시오 :

<% using (Html.BeginForm()) %> 
<% Html.RenderPartial("part1.ascx"); %> 
<% Html.RenderPartial("part2.ascx"); %> 
<%}%> 

컨트롤에서 모델을 자동으로 상속해야합니다. BeginForm은 컨트롤 (ascxs) 모두를 둘러 쌓아야한다는 것을 기억하십시오.

+0

+1 - 이번에는 this.Model을 부분 매개 변수의 Model 매개 변수로 전달했습니다. 그것이 자동으로 그것을 통과했다는 것을 깨닫지 못했습니다. 좋은 것. –