programing

Razor_layout.cshtml에 파일 이름에 선행 밑줄이 있는 이유는 무엇입니까?

megabox 2023. 5. 24. 21:50
반응형

Razor_layout.cshtml에 파일 이름에 선행 밑줄이 있는 이유는 무엇입니까?

기본 ASP.NET MVC 3 프로젝트에서 레이아웃 및 부분 cshtml 파일은 밑줄로 시작합니다.

  • _viewstart
  • _Layout
  • _LogOnPartial

이 협약은 왜, 그리고 이것은 무엇에 사용됩니까?제가 이 관례를 따라야 합니까?

프레임워크가 어떤 특별한 의미를 제공합니까?.cshtml밑줄로 시작하는 파일?

Razor는 ASP.NET 웹 페이지(WebMatrix)용으로 개발되었으며, MVC에서 사용하는 것과 같은 종류의 보기 폴더 및 라우팅에 대한 보호 기능이 내장되어 있지 않습니다.웹 페이지의 레이아웃 페이지는 직접 제공되지 않으므로, 밑줄이 앞에 붙습니다.또한 웹 페이지 프레임워크는 이름에 밑줄이 있는 파일을 직접 요청할 수 없도록 구성되었습니다.일반적으로 웹 페이지 내의 다른 .cshtml 파일을 검색할 수 있어야 합니다.이러한 파일은 .asp 또는 .php 파일과 동일합니다.

ASP.NET 팀은 웹 페이지가 ASP.NET 개발의 출발점이며, 이는 (진행하려는 사람들을 위해) 제때 MVC로 마이그레이션될 것이라고 언급했습니다.일부는 웹 페이지에서 MVC로 마이그레이션하는 것이 가능한 한 쉽다는 것을 의미합니다.따라서 웹 페이지 내에 설정된 명명 규칙을 MVC 레이저 파일로 넘겨야 합니다.

따라서 파일 이름 앞에 밑줄을 추가해야 하는 기술적 이유가 있습니다. MVC와 관련이 없습니다.

[UPDATE Oct 2018]

ASP 프레임워크 2시 될 때 은 ASP.NET Core Razor Pages가 있는 됩니다.@page지침(일반적으로 라우팅 가능한 레이저 페이지로 만들 수 있음).따라서 검색할 의도가 아니라면 레이저 페이지 응용 프로그램에서 레이아웃 및 부분 파일의 이름을 선행 밑줄로 지정하는 것이 좋습니다.

Ruby on Rails는 그렇게 합니다(부분적으로는 _로 시작하지만 Render Partial 호출에는 _이 포함되어 있지 않습니다). ASP.net MVC는 여기서 많은 영감을 얻었습니다.

기술적인 이유는 없습니다. 단지 다른 개발자(및 6개월 후의 자신)에게 다음과 같은 말을 하려는 의도를 분명히 보여주기 위한 컨벤션일 뿐입니다.이것은 부분적인 견해입니다.

브라우저의 직접 요청(마스터 페이지, 부분 보기 등)으로 표시할 수 없는 페이지는 이름 앞에 밑줄(_)이 있습니다.

따라서 _Layout.cshtml(이것은 마스터 페이지)에 요청하려고 하면 서버에서 오류가 발생합니다.

이것은 Razor view 엔진에서 독립형 페이지로 검색할 수 없는 파일을 구분하는 방법입니다.

이런 식으로 생각해 보세요...MVC 2에서...부분 보기와 마스터 사이트를 접미사 .master, .ascx로 구분하고 일반 페이지는 .aspx입니다. 반면에 Razor 보기에서는...모든 보기는 .cshtml이므로 부분 페이지와 마스터 페이지를 구분하기 위해 접두사(_)를 사용합니다.그것은 의무적인 것이 아니라 단지 "컨벤션"일 뿐입니다.

제가 알기로는 이것은 단순히 파일의 의도를 식별하는 데 사용되는 규칙입니다. 실제로 파일의 동작을 바꿀 것이라고는 생각하지 않습니다.대부분의 개발 컨텍스트에서 밑줄을 추가하면 클래스 또는 이 경우 다른 템플릿에서 "개인" 용도로 사용할 수 있는 항목이 식별됩니다.

저는 MVC를 사용하지 않지만 면도기 구문도 사용하는 웹 페이지에서 _ 접두사는 일반적으로 사용자가 페이지에 액세스하는 것이 아니라 다른 페이지나 일부 코드로 액세스하는 것을 의미합니다._filename이 포함된 페이지로 이동하려고 하면 asp.net 에서 액세스할 수 없습니다.사용자가 직접 액세스해서는 안 되기 때문에 레이아웃 페이지 및 기타 페이지와 함께 사용됩니다.

asp.net 의 App_Code 폴더와 같은 것.

Index.cshtml 파일을 마우스 오른쪽 버튼으로 클릭하고 View In Browser를 선택합니다.이를 통해 앱을 실행하지 않고 브라우저에서 index.html 페이지를 테스트할 수 있습니다.

_Layout.cshtml 페이지에서도 동일하게 수행하면 오류가 표시되거나 브라우저가 기본 페이지(Home/Index.cshtml)를 렌더링합니다.

_로 접두사가 붙은 페이지는 브라우저를 통해 테스트되지 않기 때문입니다.

해당 페이지(_Layout)를 테스트할 수 있습니다.cshtml)을 다른 cshtml 페이지와 함께 포함함으로써.

언급URL : https://stackoverflow.com/questions/4576548/why-does-razor-layout-cshtml-have-a-leading-underscore-in-file-name

반응형