[asp.net-mvc] Web.Config 파일이 MVC 프로젝트의보기 폴더에서 수행하는 작업

내 응용 프로그램을 배포하는 데 몇 가지 문제가 있으며 문제를 해결하는 동안 폴더 에서 Web.Config파일을 발견했습니다 Views. 소스의 가능성을 내 문제로 좁히기 위해 ~ Web.Config` 파일의 목적을 찾으려고 노력했지만 실제로 많은 정보를 찾을 수 없습니다.

그래서 기본적으로 내 질문은 다음과 같습니다.

  1. MVC 프로젝트 Web.configViews폴더 에서 파일은 무엇을 합니까?
  2. 필수인가요?

Asp.Net webforms에서는 폴더에 별도의 web.config 파일을 사용하려면 해당 폴더를 IIS에서 가상 폴더로 설정해야한다고 생각합니다. MVC의 경우입니까 (즉, Views폴더를 가상 폴더로 구성해야합니까)?



답변

아니요,이 추가 web.config 파일 때문에 가상 폴더를 구성 할 필요가 없습니다.

web.config 파일은 컨트롤러 이외의 다른 방법으로보기에 액세스하지 못하도록보기 폴더에 있습니다. MVC 디자인 패턴에서 컨트롤러는 요청을 라우팅하고 렌더링 된 뷰를 호출하는 클라이언트로 반환해야합니다.

즉, www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx에서보기는해야 하지 직접 액세스 할 수 있습니다.

web.config 파일을 들여다 보면 실제로 HttpNotFoundHandler모든 경로와 동사에를 등록합니다 .

<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>

또는 IIS 7에서는 다음과 같이 보일 수 있습니다.

<add name="BlockViewHandler" path="*.aspx" verb="*"
    preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>


답변

네임 스페이스 가져 오기와 같은 뷰에 대한 컴파일러를 구성하고 뷰 폴더가 404를 반환하도록합니다.


답변

보기 폴더의 web.config 파일은보기 폴더 내의 페이지에 적용 할 일부 특수 설정을 수행하는 것입니다.

연결 문자열 / appsettings 등과 같은 구성 설정과 같습니다.

그러나 그것은 해당 폴더에만 적용되며 프로젝트의 나머지 부분은 루트에있는 web.config에서 설정을 선택합니다.

특히 영역의 개념을 사용하는 경우 별도의 web.cfg 파일을 포함하는 각 영역에 대해 별도의 폴더가 있으며 각 영역에 대해 별도의 설정을 적용 할 수 있습니다.


답변

이는 상단에 언급 된 내용을 재정의하려는 경우입니다 web.config. 즉, Views폴더 범위 내에서 사용자 지정하려는 경우 입니다.


답변