2010-06-01 4 views
0

MVC2를 처음 사용하기 때문에이 질문은 매우 간단 할 수도 있습니다. 간단한 데모 MVC 프로젝트가 있습니다.다른 (부분)보기에서 동일한 코드 사용

(1) 약한 지정된 뷰 : Index.aspx를

<% Html.RenderPartial("ArticalList", ViewData["AllArticals"] as List<Artical>); %> 
(2) 강한 형식의 부분도

: ArticalList.ascx는

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<Artical>>" %> 
<% foreach (Artical a in Model) { %> 
      <%= Html.ActionLink(a.Title, "About", new { id = a.ID })%><br /> 
<%} %> 

(3) 여기서 HomeController는 .cs

public ActionResult Index() 
    { 
     ViewData["AllArticals"] = Artical.GetArticals(); 
     return View(); 
    } 

public ActionResult ArticalList() 
{ 
    return PartialView(Artical.GetArticals()); 
} 

나는 웹 양식을 사용하고있는 경우 때문에 나는 Index.aspx를 방문 할 때 내가 ArticalLi 렌더링, 웹 양식 "각도"를 사용하고 죄송합니다 st.ascx는 Public ActionResult ArticalList()를 호출합니다. 하지만 여기서 저는 Artical.GetArticals()를 두 번 행동으로 두 번 써야합니다. 어떻게 그들을 하나에 넣을 수 있습니까?

답변

1

내가 이해 한 바로는 MVC의 최근 초보자도 부분보기가 컨트롤러에서 동작 방법을 사용하지 않는다는 것입니다. "ArticalList"은 부분 뷰 파일에 대한 참조이며 동작 방법에 대한 다른 요청을하지 않습니다. 부분보기는 호출 된 뷰에서 모든 데이터를 가져옵니다.

Html.RenderAction은 혼란 스러울 수 있습니다.

+0

Brilliant! 그게 내가 원하는거야! 감사! –

관련 문제