source

ASP.NET MVC 보기 결과 대 부분 보기 결과

factcode 2023. 6. 28. 22:01
반응형

ASP.NET MVC 보기 결과 대 부분 보기 결과

명명된 컨트롤러 결과 간의 차이점은 무엇입니까?ViewResult그리고.PartialViewResult더 중요한 것은, 언제가PartialViewResult중고?

PartialViewResult는 부분 뷰(fx. 사용자 컨트롤만)를 렌더링하는 데 사용됩니다.이것은 AJAX와 같은 것들에게 꽤나 멋진 일입니다.

<script type="text/javascript">
    $.get(
        "/MyController/MyAction",
        null,
        function (data) { $("#target").html(data) }
     );
</script>

및 액션

public ActionResult MyAction() 
{
    return PartialView("SomeView");
}

여기서 SomeView는 MVC 사용자 컨트롤입니다. 예:

<div>
   <%= DateTime.Now.ToString() %>
</div>

http://msmvps.com/blogs/luisabreu/archive/2008/09/16/the-mvc-platform-action-result-views.aspx

실제로는 뷰의 작은 부분을 출력하는 데 부분 뷰 결과를 사용합니다.그렇기 때문에 마스터 페이지 옵션을 사용할 수 없습니다.반면에, "전체" 보기를 얻기 위해 결과 보기를 사용할 것입니다.컨트롤러 클래스는 이러한 유형의 작업 결과를 인스턴스화하는 데 필요한 입력량을 줄일 수 있는 몇 가지 방법을 제공합니다.

일반적으로 ViewResult는 선택적 마스터가 있는 페이지를 렌더링하기 위한 것이며 PartialViewResult는 사용자 제어(AJAX 요청에 응답할 가능성이 있음)에 사용됩니다.

기존 답변 중 "차이가 무엇인가"라는 질문에 실제로 대답하는 답변은 없습니다.

차이점은 다음과 같습니다.

뷰 엔진이 뷰를 찾기 위해 시도할 위치:

  • ViewResult의 경우 ViewLocationFormats 및 MasterLocationFormats에 있습니다.
  • PartialViewResult의 경우 PartialViewLocationFormats에 있습니다.

ViewResult에 추가 속성 MasterName이 있습니다.

그게 다야.

보기를 여러 개의 작은 구성 요소로 분할하려는 경우가 몇 가지 있습니다.제가 지금 작업하고 있는 한 가지 사용 사례는 AJAX 원칙을 사용하여 컨텐츠를 다시 로드하고 싶은 다국어 사이트가 있다는 것입니다.

일반적으로 다국어 사이트가 아닌 경우에는 다른 작업 결과를 만들어 새 매개 변수로 변경되는 View Model을 반환합니다.저는 JsonpResult라고 하는 사용자 지정 작업 결과를 사용하는 것을 좋아합니다.데이터베이스가 아닌 리소스 파일에 레이블이 있다는 사실에 문제가 있습니다.따라서 리소스 파일 데이터를 View Model에 어떻게든 주입해야 합니다.

데이터가 파이프로 전달되면, 나의 AJAX 콜백은 Javascript(jQuery 사용)를 사용하여 ViewModel 응답을 HTML 페이지로 다시 연결하는 작업을 처리합니다.

이것은 확실히 효과가 있지만, 유지보수의 문제가 됩니다.이제 원래 ASP.NET 보기를 유지해야 할 뿐만 아니라 AJAXian 동작을 처리하는 스크립트 집합도 유지해야 합니다.사이트 SEO가 필요한 경우 서버 측 및 클라이언트 측 동작이 모두 동일하게 작동하는지 확인해야 합니다.

여기서 부분적인 관점이 저에게 적용됩니다.제가 하는 일은 대부분의 재로드가 발생하는 논리적 데이터 섹션을 "끌어내는" 것입니다.PartialView의 좋은 점은 ViewData와 Model을 PartialView로 전달할 수 있다는 것입니다.View 모델에 대해 PartialView를 강하게 입력한 경우 Intelliense를 통해 PartialView의 배선을 지원할 수 있습니다.

이제 AJAX 콜에서 해야 할 일은 데이터 포인트를 개별적으로 처리하는 것이 아니라 단일 DIV에 응답을 기록하는 것입니다.그것이 의미하는 것은 파이프에서 더 많은 콘텐츠가 내려올 것이라는 것입니다.그러나 코드를 읽고 유지하는 것이 더 쉽습니다.

주요 차이점 중 하나는 PartialViewResult가 _ViewStart.cshtml을 사용하지 않는다는 것입니다._ViewStart.cshtml 파일의 코드는 렌더링 시작 시 뷰의 코드보다 먼저 실행됩니다.

언급URL : https://stackoverflow.com/questions/472963/asp-net-mvc-viewresult-vs-partialviewresult

반응형