Html.RenderPartial로 인해 이상한 과부하 오류가 발생합니까?


103

_Test.cshtml 이라는 테스트 부분 페이지를 만들고 이를 호출 할 뷰와 동일한 디렉터리에 넣었습니다. 여기에 있습니다.

<div>hi</div>

그리고 호출 cshtml보기에서 간단히 다음과 같이 입력합니다.

@Html.RenderPartial("_Test")

오류가 발생합니다.

CS1502 : 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)'에 대한 최상의 오버로드 된 메서드 일치에 잘못된 인수가 있습니다.

나는 또한 동일한 결과로 전체 경로를 시도했습니다.

나는 이것이 왜 이런 식으로 행동하는지에 대해 매우 혼란 스럽습니다. 간단한 것을 놓치고 있다고 생각합니까?

답변:


190

Html.RenderXXX헬퍼가 void를 반환하기 때문에이 오류가 발생 합니다. 응답에 직접 * 내용을 쓰고 있기 때문에 반환 할 것이 없습니다. 다음과 같이 사용해야합니다.

@{ Html.RenderPartial("_Test"); }

구문과 함께 작동하는 Html.Partial 도우미도 있지만 성능 때문에 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋습니다 (먼저 주어진 부분보기를 문자열로 구성한 다음 부모보기가 응답에 넣습니다 * ).

* 이것은 전적으로 사실이 아니며 실제로 ViewContext.Writer로 렌더링되고 전체 페이지가 렌더링되고 구성되면 모든 것이 응답으로 이동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.