2012-01-15 4 views
3

Html.Action 메서드를 사용하여 다른 뷰를 호출했습니다. 사용자가 액션 링크를 클릭하면 하위 뷰 내부의 매개 변수를 사용하여 동일한 액션을 호출하려고합니다.하위 작업에 대한 작업 링크

Html.ActionLink("link", "Configure", new { id = 2 }) 

액션 '구성은'오직 자식 요청에 의해 액세스 :이 코드를 작성할 때

는이 오류 메시지가 표시됩니다.

어떻게이 문제를 해결할 수 있습니까?

편집 : 나는이 문제를 reexplain하려고합니다 :

내 부모보기 ConfigureMethod.cshtml이다. 나는 그런 아이 아이 뷰를 호출

@Html.Action("Configure", "Payment"); 

그것은이 컨트롤러로 이동하고 ConfigureMethod보기 내부 (partialview되지 않음) actionresult를 반환

[ChildActionOnly] 
public ActionResult Configure() 
{ 

} 

가 구성보기 안에 내가 작업 링크 그렇게합니다

[ChildActionOnly] 
public ActionResult Configure(int Id) 
{ 

} 
: 그것은해야
Html.ActionLink("link", "Configure", new { id = x.Id }) 

이 컨트롤러로 이동

그러나 childonly 속성을 쓰면 오류가 발생합니다. 이 속성을 제거하면 작동하지만 결과는 ConfigureMethod보기가 아닌 직접 제공됩니다.

감사합니다.

답변

8

두 내가 지적하고 싶은 일,

  1. 아이의 행동 만 PartialView로 렌더링하는 의미가있다. 따라서 [ChildActionOnly] 속성으로 꾸미는 것은 PartialViewResult을 반환해야하는 작업임을 의미합니다.

  2. ActionLink()를 호출하면 부분 뷰가 아닌 뷰에 대한 링크가 생성됩니다. [ChildActionOnly]으로 장식하지 않더라도 부분보기에 대한 링크는 의미가 없습니다.

따라서보기 또는 부분보기를 원하는지 먼저 결정한 다음 그에 따라 디자인하십시오.

관련 문제