6

毫无疑问,我在这里遗漏了一些非常明显的东西 - 但我是 sharepoint 的新手,所以请多多包涵。

我已经成功地添加了一个母版页,创建了一个内容类型,并为我的自定义内容类型创建了一个 aspx 页面 - 但我找不到它的 cs 文件!?

在共享点解决方案中是否有另一种实现代码隐藏的方式?创建控件时似乎是相似的。我习惯于标准的 asp .net c# web 应用程序开发,所有的 aspx 页面都带有“作为标准”的代码隐藏文件。

谢谢。

4

4 回答 4

7

在 SharePoint 中,您可以有一个代码隐藏类,但它需要在程序集中,而不是在 aspx.cs 代码隐藏文件中。

使用 Visual Studio 2010,您的 aspx 页面的 Page 指令将如下所示:

<%@ Page 
    Language="C#" 
    DynamicMasterPageFile="~masterurl/default.master" 
    Inherits="MyNamspace.MyPage, $SharePoint.Project.AssemblyFullName$"
    %>

然后,您可以创建一个MyNamspace.MyPage类并执行您在常规代码隐藏文件中执行的所有操作。

如果你看一下 14 hive\TEMPLATE\LAYOUTS 目录中的开箱即用的 aspx 页面,你会看到,虽然有些页面有内联代码(在布局中是允许的),但几乎每个页面都继承自一个类SharePoint 程序集。

于 2012-04-18T14:36:38.053 回答
2

Code-Behind 在 2007 和 2010 版本中被设计隐藏。请参阅此处以基于每个位置启用它 (PageParserPath)。

从长远来看,在可支持性、维护和管理方面,如果可以的话,您会更好地遵守 SharePoint 中的约定并使用控件而不是代码隐藏。

于 2012-04-18T09:59:29.627 回答
2

您应该在共享点设计器中打开您的sharepoint .aspx页面并inherit使用您的 .cs 类添加语句。

就像是 :

 <%@ Page Language="C#" MasterPageFile="~masterurl/default.master" Inherits="Namespace.ClassName,Namespace,Version=1.0.0.0, Culture=neutral, PublicKeyToken=tokenid" %>

一件事仍然是早先的@Paul's Answer,您应该基于每个位置启用它(PageParserPath)

于 2012-04-18T10:11:13.053 回答
1

我建议您在 SharePoint 专用网站上提出这个问题。你可以在这里找到它。

但回答您的问题时,至少在 MOSS 2007 中,SharePoint 页面中没有可供您使用的代码。不确定 SharePoint 2010 是否准确,但必须相同。

于 2012-04-18T09:48:07.777 回答