2013-06-04 2 views
1

스폰서 목록에서 임의의 문자열 sponsorname을 반환하는 코드를 작성했습니다. 이 스폰서 이름은 각 페이지에서 볼 수 있어야하므로 공유 _ 레이아웃보기에서 RandomSponsor 메서드를 호출합니다. 이 RandomSponsor 방법은 HomeController에 기반하고 만 Html.Action처리되지 않은 예외 System.StackOVerflowException C#

그리고 그 Html.Action에서 프로그램이 오류를 반환 포함 된 자신의보기이다 가지고있다 :

[HttpGet] 
[ChildActionOnly] 
public ActionResult RandomSponsor() 
{ 
    var model = service.getRandomSponsor(); 
    return PartialView("RandomSponsor", model); 
} 
: 이것은 내 RandomSponsor 방법은

System.StackOverflowException {Cannot evaluate expression because the current thread is in a stack overflow state.} 

입니다

프로그램이 중단되는 RandomSponsor.cshtml

@Html.Action("RandomSponsor") 

그리고 공유 레이아웃 페이지 _Layout.cshtml에서 내 전화 :

@Html.Action("RandomSponsor", "Home") 

나는 그것을보기,하지만 내 Html.Action 다시 기능을 요구하기 때문에, 그것의에 RandomSponsor 방법이가는 것으로 나타났습니다 디버깅하고있어 동안 루프에 갇혀있다. 나는 RandomSponsor.cshtml보기에서 Html.Action에 잘못된 매개 변수를 제공한다고 생각하지만 올바른 것은 무엇인지 알지 못합니다.

누구나 비슷한 문제가 있거나이 오류를 해결하는 방법을 알고 있습니까, 나는 모든 귀입니다. 당신이 필요로하는

_Layout.chtml calls RandomSponsor, RandomSponsor first load it's layout _Layout.chtml, 
_Layout.chtml calls RandomSponsor, RandomSponsor first load it's layout _Layout.chtml....till stackoverflow 
+0

그건 말이되지 않습니다. 무엇을하고 싶니? – SLaks

+0

@SLaks 인 경우 최종 결과는 내 웹 사이트의 각 페이지에 임의의 스폰서 이름이어야합니다. 이 코드를 사용하여 partialView와 공유 레이아웃에 RandomSponsor.cshtml 뷰를 렌더링하려고합니다. – Gijs

+0

자세한 내용이 필요합니다. 예외는'getRandomSponsor()'메소드에서 발생 했습니까? 그것의 구현은 무엇입니까? 스택 추적에 기록 된 코드의 마지막 줄을 지적 할 수 있습니까? 예를 들어'getRandomSponsor()'에서 던져진다면'getRandomSponsor()'와'RandomSponsor()'를위한 라인이있을 것이고 아마 프레임 워크 코드에서 여러 줄이 생길 것이다. – evanmcdonnal

답변

2

:

감사

+0

을 완벽하게 설정할 수 있습니다! 고맙습니다! – Gijs

2

문제는 당신이 _Layout.chtml 레이아웃으로 설정 한 RandomSponsor 부분보기,

enter image description here

그래서이 시나리오를위한 것이다 하위 작업에 표시 할 실제 HTML을 뷰에 표시합니다.

뷰가 재귀 적으로 자체 동작을 렌더링하도록하는 것은 이치에 맞지 않습니다.

+0

아니오; 부분 뷰에는 레이아웃이 없습니다. – SLaks

+0

그러나 –