programing

영역에서 공통 _ViewStart를 어떻게 사용합니까?

showcode 2023. 5. 20. 11:02
반응형

영역에서 공통 _ViewStart를 어떻게 사용합니까?

"root" Views 폴더에 다음 코드를 가진 _ViewStart가 있습니다.

@Code
    Layout = "~/Views/Shared/_Layout.vbhtml"
End COde

내 영역/공용/뷰 폴더에는 루트 뷰 폴더에서 _ViewStart 복사본이 있습니다.

그러나 코드를 실행하면 다음 오류가 발생합니다.

Unable to cast object of type 'ASP._ViewStart_vbhtml' to type 'System.Web.WebPages.StartPage'.

내가 뭘 잘못하고 있는 거지?

하나 사용할 수 있습니까?_ViewStart.vbhtml제 지역에도요?

사용 방법_ViewStart.vbhtml영역에서?

복사해야 합니다.~\Views\Web.config파일(또는 적어도 다음 구성 요소)을 영역의 보기 웹에 저장합니다.구성:

<configSections>
  <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  </sectionGroup>
</configSections>

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
      <add namespace="System.Web.Routing" />
    </namespaces>
  </pages>
</system.web.webPages.razor>

제가 이 문제에 부딪혔을 때, 저는 이 답을 먼저 발견했지만, 제가 정말 원했던 것은 http://stevescodingblog.co.uk/asp-net-mvc-3rc-areas-viewstart/ 에 있었습니다.

문제의 핵심은 _ViewStart입니다.**고객에게는 범위가 있습니다.동일한 수준에 있거나 그 아래의 하위 폴더에 있는 모든 보기에 적용됩니다.따라서 기본 디렉토리(예: Global.asax 파일 옆)로 이동하면 ~/Views/* 아래의 모든 뷰와 ~/Areas/*/Views/* 아래의 모든 뷰에 적용됩니다.

승인된 답변과 유사하게, 당신은 여전히 복사해야 할 것입니다.<system.web.webPages.razor>그리고.<sectionGroup name="system.web.webPages.razor"..>섹션.기본 web.config 파일(프로젝트 루트)에 배치합니다.

여기완벽한 튜토리얼이 있습니다.

보너스 포인트의 경우 _ViewStart를 재정의할 수 있습니다.**html 설정은 해당 보기에 가까운 새 파일을 생성하여 설정합니다(예: 파일 ~/Views/_ViewStart.cshtml은 ~/Views/ 디렉토리의 모든 보기에 대해 ~/_ViewStart.cshtml을 덮어씁니다).

_ViewStart를 루트로 이동하고 시스템을 추가하는 것을 발견했습니다.루트 웹 구성에 대한 web.webPages.razor 섹션은 작동했지만 이 << add namespace="Ico>와 유사한 줄도 추가해야 했습니다.논리학. 웹.지역.관리.Models" />를 복사된 섹션으로 이동합니다.

언급URL : https://stackoverflow.com/questions/4109205/how-do-i-use-a-common-viewstart-in-areas

반응형