2010-07-19 2 views
20

내 질문이 터무니없는 것처럼 보일 수 있으므로 정말 초보자입니다.하지만 파일이 어떻게 생겼는지 궁금합니다. .aspx.designer.cs 작동 ... 파일이 포함 된 솔루션으로 작업하는 것은 처음입니다. .aspx .designer.cs 각 페이지마다.aspx.designer.cs 어떻게 작동합니까?

왜 가끔 솔루션 .aspx.designer.cs 파일이 doen't : 그래서 내가 코드 숨김의 .ASPX에 사용되는 컨트롤의 그것의 선언 ..

다음

내 질문이 있습니다 이해? (숨겨진 파일입니까, 존재하지 않는 파일입니까?)

종종이 파일에 문제가 있습니다. 일부는 .aspx 코드에 추가 할 때 자동으로 컨트롤 선언을 다시 작성하지 않습니다. 무엇을 잘못하고 있습니까?

답변

25

.aspx.designer.xx 파일은 ASP.NET webforms 코드 숨김 파일과 .aspx 태그 파일의 연결 고리입니다. aspx 태그 페이지에있는 서버 컨트롤이 여기에 표시됩니다. 가장 중요한 것은 서버 컨트롤의 이름과 유형입니다.

Visual Studio에서 디자인 타임에 만든 서버 컨트롤에 대한 코드 숨김 페이지에서 사용자에게 IntelliSense를 제공 ​​할 수 있습니다.

작동 방식 : 디자이너에서 서버 컨트롤을 추가/제거 할 때 Visual Studio에서 .designer 파일에 protected 멤버를 생성하거나 동기화 상태를 유지합니다.

protected global::System.Web.UI.WebControls.DropDownList DropDownList1; 

.designer 파일은 partial class입니다. 이것은 코드 숨김 파일에 대한 연결을 제공합니다. 이것이 Intellisense가 .aspx와 코드 숨김 사이의 갈고리를 얻는 방법입니다.

당신은 당신의 디자이너 파일을 다시 생성 할 수 있습니다 웹 사이트 프로젝트 및 웹 응용 프로그램 프로젝트 : http://www.undermyhat.org/blog/2009/07/tip-regenerate-aspx-designer-cs-files-when-corrupted/

+0

응답 해 주셔서 감사합니다.하지만 수동으로 페이지의 디자이너 파일을 다시 작성하도록 요청할 수 있습니까? – bAN

+1

@ban : 디자이너 파일을 재생성하는 방법은 다음과 같습니다. http://www.undermyhat.org/blog/2009/07/tip-regenerate-aspx-designer-cs-files-when-corrupted/ –

18

Visual Studio에서 웹 사이트를 만드는 두 가지 방법이있다. (OK, OK, MVC를 추가하면 3).

웹 응용 프로그램 프로젝트에만 designer.cs 파일이 있습니다. 웹 사이트 프로젝트에는 웹 사이트 프로젝트가 없습니다.

웹 응용 프로그램 프로젝트 형

는 p.campbell가 아웃 지적으로, .designer.cs 파일이 .aspx.cs의 코드 숨김 파일에 .ASPX 파일을 링크 2003

+2

대답했습니다. 내 질문, 고마워! – Nestor

0

비주얼 스튜디오에서 추가되었다. .designer.cs 파일이 없으면 .aspx.cs CodeBehind 파일의 모든 .aspx 페이지 컨트롤은 "현재 컨텍스트에 존재하지 않습니다"라는 오류를 반환합니다. .designer.cs의 연결은 .aspx.cs CodeBehind 파일의 네임 스페이스 및 클래스와 함께 aspx 파일의 @ Page 지시문의 "Inherits"속성을 기반으로 수행됩니다. "상속"속성의 마지막 부분은 CodeBehind 파일과 .designer.cs 파일에 정의 된 클래스와 일치해야하며 앞에있는 세그먼트는 .designer.cs 및 CodeBehind 파일의 네임 스페이스와 일치해야합니다.

예 : myfile.aspx

<%@ Page Language="C#" 
    AutoEventWireup="true" 
    CodeBehind="myfile.aspx.cs" 
    Inherits="my.namespace.dot.classname" %> 

myfile.aspx.cs

namespace my.namespace.dot { 
    public partial class classname : Page { ... } 
} 

참고 숨김 파일 클래스는 페이지 클래스에서 상속 또는 그의 일부 유도체한다.

myfile.designer.aspx.cs

namespace my.namespace.dot { 
    public partial class classname { ... } 
} 

참고 : .designer.cs 클래스는 클래스 이름은 코드 숨김과에서 .aspx 파일과 일치 다만, 상속에 대해 상관하지 않는다. 라는 이름에서 .aspx 및 .aspx.cs 파일 "로 같은 디렉토리에서 새로운 빈 파일을 만듭니다

  1. :

    는이 같은 손실 .designer 파일 (w3cgeek.com"Regenerate designer.cs ")를 재생성 할 수 있습니다 myfile.aspx.designer.cs "여기서"myfile "은 연결할 .aspx 및 .aspx.cs 파일의 이름입니다.

  2. 빈 클래스가있는 네임 스페이스를 새 파일에 추가하고 해당 이름이 연결하려는 .aspx 및 .aspx.cs 파일에 지정된 네임 스페이스 및 클래스와 일치하는지 확인하십시오.
  3. .designer.cs 파일을 저장하고 .aspx 파일을 변경하고 (예 : 공백 추가) .aspx 파일을 저장합니다.

Visual Studio는 .designer.cs 파일을 .aspx 및 CodeBehind 파일을 연결하는 데 필요한 모든 코드로 자동 채워야합니다. "현재 컨텍스트에 존재하지 않습니다"오류가 사라졌습니다.

편집 : 링크가 원래 p.campbell에 의해 게시 되었기 때문에 .designer.cs 지침을 추가했습니다.

관련 문제