2010-08-02 68 views
0

我在sharepoint服务器上的_layouts/sandbox文件夹中有一个default.aspx。自定义Sharepoint应用程序中的页面继承

它具有以下代码:

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 
      { 
      } 
     } 



    } 

} 

它应该inherint的LayoutsAppPage类,这样我可以用它来在做所有页面OnPreInit功能于一体的“沙盒”的应用程序。这里是代码LayoutsAppPage.aspx.cs在同一目录

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 
      { 
      } 
     } 
    } 
} 

我运行页面

c当出现以下错误:\ Program Files文件\共同 文件\微软共享\网络服务器 扩展\ 12个\ TEMPLATE \ LAYOUTS \沙盘\ Default.aspx.cs(20): 错误CS0246:类型或命名空间 名“LayoutsAppPage”无法找到 (是否缺少使用 指令或程序集参考?)
在 System.Web.Compilation.AssemblyBuilder.Compile()

我也注意到,在该行的“公共部分类_Default:LayoutsAppPage”那LayoutsAppPage不会变成浅蓝色像它应该为基类。如果该行是“public partial class _Default:System.Web.UI.Page”,则页面加载正常。也许我已经错误地宣布了basepage?

编辑:根据要求 -

<%@ 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 2010-08-02 22:56:19

+0

我已将所有这些内容添加到原始帖子的末尾,感谢您参阅kbrimington。 – Josh 2010-08-02 23:29:28

+0

我可能会抓住吸管,所以我只会发表评论。我总是在@Page指令的Inherits属性中使用该类的程序集限定名。此外,请仔细检查您的所有.cs文件是否设置为在项目中编译。另外,请确保您使用的是Web应用程序项目而不是Web站点。 祝你好运! – kbrimington 2010-08-03 05:09:53

回答

0

如果你的组件部署到GAC或公共密钥签名,那么你就会有指定的页面元素的继承属性使用&全型组合名称如下:

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