Razor를 사용한 Html.RenderPartial () 구문


95

이것은 부분 뷰 렌더링의 결과를 문자열로 반환하기 때문에 작동합니다.

@Html.Partial("Path/to/my/partial/view")

그러나 나는 사용하는 것을 선호 RenderPartial하며 작성해야 할 것 같습니다.

@{Html.RenderPartial("Path/to/my/partial/view");}

대신에:

@Html.RenderPartial("Path/to/my/partial/view");

작동 시키려면. 에러 메시지:

 Compiler Error Message: CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

@{...}하나의 메서드 호출을 위해 코드 블록을 여는 대신 더 좋은 방법이 있다면 ?


사용하려고 할 때 발생하는 오류는 무엇입니까@Html.RenderPartial()
Neil Knight

내 게시물에 메시지를 추가했습니다. @ Html.RenderPartial () 오류가 대략 <%? : @ Html.RenderPartial ()?>처럼 구문 분석되는 이유를 이해합니다. Html.RenderPartial (); ?>,하지만 해결 방법을 찾고 있습니다.
artvolk 2011-08-08

관련 : Html.Partial vs Html.RenderPartial & Html.Action vs Html.RenderAction . BTW 왜 사용하는 것을 선호 RenderPartial합니까?
Paolo Moretti 2011 년

답변:


142
  • RenderPartial()A는 공극 방법 응답 스트림을 기입한다. C #에서 void 메서드에는 a가 필요 ;하므로 { }.

  • Partial()MvcHtmlString 을 반환하는 메서드입니다 . Razor에서는 @페이지에있는 일반 HTML과 구분하기 위해 접두사 만 사용하여 이러한 문자열을 반환하는 속성 또는 메서드를 호출 할 수 있습니다 .


1
Html.Partial 대신 Html.RenderPartial을 선호하는 이유는 무엇입니까? 어떤 이유로 든 Html.RenderPartial을 사용하기를 원하거나 필요로하는 경우 해결 방법이 없습니다. 이것이 구문입니다.
Ofer Zelig 2011 년

5
더 효과적이기 때문에 사용합니다 (큰 문자열을 반환하지 않기 때문에).
artvolk 2011-08-08

45

Html.RenderPartial ()은 void 메서드입니다. 코드에서 RenderPartial 호출 위에 마우스를 올려 놓으면 메서드가 void 메서드인지 확인할 수 있으며 void HtmlHelper.RenderPartial ... 텍스트 (확장자) 가 표시됩니다 .

Void 메서드는 호출 코드 끝에 세미콜론이 필요합니다.

Webforms보기 엔진에서는 꿀벌 쏘기 <% %> 내에 Html.RenderPartial () 호출을 넣었을 것입니다.

그렇게

<% Html.RenderPartial("Path/to/my/partial/view"); %>

Razor 뷰 엔진을 사용하는 경우 해당 사항은 다음과 같습니다.

@{Html.RenderPartial("Path/to/my/partial/view");}

5
첫 번째의 - "벌침"(나를 위해?)
JoeBrockhaus

9
@Html.Partial("NameOfPartialView")

를 사용하고 싶습니다 Html.RenderPartial(). 그래서이 질문을했습니다. 세부 사항 : "성능 측면에서, 출력 스트림에 직접 렌더링하는 것이 더 좋다고 주장되었습니다. 여기에서 stackoverflow.com/a/2729851/118810
artvolk

0

이 형식이 주어지면 다른 페이지 또는 다른 링크에 대한 링크처럼 사용됩니다. 주로 한 곳에서 다른 곳으로 html 파일을 변환하는 데 사용되는 부분보기입니다.

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