2010-08-02 4 views
0

sharepoint 서버의 _layouts/sandbox 폴더에 default.aspx가 있습니다.사용자 지정 셰어 포인트 응용 프로그램의 상속

그것은 다음과 같은 코드가 있습니다 내가 '샌드 박스'응용 프로그램의 모든 페이지에 OnPreInit 기능을 수행하는 것을 사용할 수 있도록 LayoutsAppPage 클래스를 inherint하도록되어

using System; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using Microsoft.SharePoint; 
using Microsoft.SharePoint.WebControls; 

using System.Web.Configuration; 

namespace sandbox 
{ 

    public partial class _Default : LayoutsAppPage 
    { 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      SPWeb web = SPContext.Current.Web; 
      LabelTitle.Text = web.Title; 

      if (Page.IsPostBack == false) 
      { 
       //Label1.Text = "Fahrenheit to Celsius:"; 
      } 
     } 

     protected override void OnPreInit(EventArgs e) 
     { 
      base.OnPreInit(e); 

      try 
      { 
       this.MasterPageFile = SPContext.Current.Web.MasterUrl; 
      } 
      catch 
      { 
      } 
     } 



    } 

} 

합니다. \ 프로그램 파일 \ 공용 파일 \ Microsoft 공유 \ 웹 : 여기 페이지

C를 실행할 때

using System; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using Microsoft.SharePoint; 
using Microsoft.SharePoint.WebControls; 

using System.Web.Configuration; 

namespace sandbox 
{ 
    public class LayoutsAppPage : System.Web.UI.Page 
    { 
     protected override void OnPreInit(EventArgs e) 
     { 
      base.OnPreInit(e); 

      try 
      { 
       this.MasterPageFile = SPContext.Current.Web.MasterUrl; 
      } 
      catch 
      { 
      } 
     } 
    } 
} 

내가 다음과 같은 오류가 같은 디렉토리에 LayoutsAppPage.aspx.cs의 코드는 서버 확장 \ 12 개 \ TEMPLATE의 \ 레이아웃 \하여 default.aspx.cs \ 샌드 박스 (20) : 오류 CS0246 : 형식 또는 네임 스페이스 이름 'LayoutsAppPage' 찾을 수 없습니다 (당신은 사용 지시문 또는 어셈블리를 누락 참조?)
이 기본 클래스해야처럼 "LayoutsAppPage 공공 부분 클래스 _Default"LayoutsAppPage 밝은 파란색을 설정하지 않는 System.Web.Compilation.AssemblyBuilder.Compile()

에서내가 라인에 있다는 통지를했다. 행이 "public partial class _Default : System.Web.UI.Page"이면 페이지가 정상적으로로드됩니다. 어쩌면베이스 페이지를 잘못 선언 한 것일까 요?

편집 : 요청에 의해 - 어셈블리가 GAC에 배포 또는 공개 키로 서명 된 경우

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="sandbox._Default" MasterPageFile="~/_layouts/application.master" %> 

<%@ Assembly Name="Microsoft.SharePoint.ApplicationPages,Version=12.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c" %> 

<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 

<%@ Register TagPrefix="wssuc" TagName="InputFormSection" Src="/_controltemplates/InputFormSection.ascx" %> 
<%@ Register TagPrefix="wssuc" TagName="InputFormControl" Src="/_controltemplates/InputFormControl.ascx" %> 
<%@ Register TagPrefix="wssuc" TagName="ButtonSection" Src="/_controltemplates/ButtonSection.ascx" %> 
<%@ Register TagPrefix="wssuc" TagName="ToolBar" Src="/_controltemplates/ToolBar.ascx" %> 
<%@ Register TagPrefix="wssuc" TagName="ToolBarButton" Src="/_controltemplates/ToolBarButton.ascx" %> 
+0

<%@ %> 지시문을 모두 마크 업 페이지 상단에 게시 할 수 있습니까? – kbrimington

+0

원래 게시물의 끝에 모두 추가했습니다. kbrimington을 가져 주셔서 감사합니다. – Josh

+0

나는 빨대에서 쥐고 있을지 모르지만, 나는 단지 논평으로 올릴뿐입니다. @Page 지시문의 Inherits 특성에서 항상 어셈블리의 정규화 된 클래스 이름을 사용합니다. 또한 모든 .cs 파일이 프로젝트에서 컴파일되도록 설정되었는지 다시 확인하십시오. 또한 웹 사이트 대신 웹 응용 프로그램 프로젝트를 사용하고 있는지 확인하십시오. 행운을 빈다. – kbrimington

답변

0

는, 당신은 전체 유형 & 어셈블리를 사용하여 페이지 요소의 상속 속성을 지정해야합니다 아래처럼 이름 :

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="_Default.aspx.cs" 
Inherits="CustomAssemblyNamespace.sandbox._Default, CustomAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1a01d56a735c19c1" %> 
관련 문제