2011-04-11 2 views
1

안녕하세요, 저는 아직도 asp.net을 처음 접하고 있습니다. 하나의 메인 홈페이지에서 강하게 입력 된 부분 뷰를 사용하려고합니다. 저장소 및 Irepository로이 작업을 수행하는 방법을 잘 모르겠습니다.하나의 메인 홈페이지에서 여러 부분보기, asp.net mvc

페이지를로드하려고 시도 할 때까지 지금까지이 작업을 수행했지만 오류가 계속 발생합니다.

<%Html.RenderPartial("~/Views/Shared/Partial.ascx", Model);%> 

뷰에 정보를 전달하려면 viewData를 사용해야합니까 ?? 어떤 도움도 도움이 될 것입니다. 사람이 가

+0

무엇이 오류입니까? –

답변

1

내가보기에 정보를 전달을 ViewData를 사용해야합니다 관련하여 도움을 주시겠습니까?

예.

동일한 컨트롤러 메서드를 통해 부분 뷰에 데이터를 전달하지 않으려면 RenderPartial 대신 RenderAction을 사용하십시오. 더 많은 컨트롤러 메소드가 필요하지만 부분 뷰를 사용할 때마다 기존 컨트롤러 메소드에서 데이터 바인딩 코드를 반복하지 않아도됩니다.

+0

Harvery - 내가 얻는 오류 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. viewDate를 사용하여 뷰에 실제로 전달하는 방법은 무엇입니까? 가능하다면 저에게 예제를 주시겠습니까? 저장소/Irepository/컨트롤러 사용 포함 – Trev

1

나는 다른 답변과 다른 점을 말하며 : 아니요입니다. 아니요은 부분보기에 정보를 전달하기 위해 tempdata를 사용해야합니다. 현재 수행중인 작업에 따라 복합보기 모델을 대신 만들어야합니다. 모범 사례에서는 모델을 뷰에 직접 전달하면 안되며 대신 ViewModel을 만들어야한다고 명시합니다.

는 복합 뷰 모델에 대해 여기 허용 대답을 참조하십시오 : 다음 ViewModel Best Practices

public class CompositeViewModelAB { 
    public ViewModelA viewModelA { get; set; } 
    public ViewModelB viewModelB { get; set; } 
} 

:

@Partial("~/path.cshtml", Model.viewModelA) 

모든 것을 강력하게 형식화 될 것이다 이것은 귀하의 케이스를 만족시킨다. 홈페이지는 합성보기 모델에 강력하게 입력되며, 부분보기는 복합보기 모델에 포함 된보기 모델에 강하게 입력됩니다.