2010-07-20 7 views
0

Je cherche à pour la première fois de créer un site Web asp.net personnalisé sur un serveur web sharepoint, j'ai créé le Default.aspx suivantcréation webapp personnalisé dans le dossier sharepoint

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_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" %> 


<asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderMain" runat="server"> 
    <div> 
    Title of this site: <asp:Label ID="LabelTitle" runat="server" Text="Label"> 
    </asp:Label> 
    </div> 
</asp:Content> 

<asp:Content ID="Content2" 
ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server"> 
Test ASP.NET 2.0 Application 
</asp:Content> 

avec le défaut suivant .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; 


public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     SPWeb web = SPcontext.Current.Web; 
     LabelTitle.Text = web.Title; 
    } 

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

     SPWeb web = SPContext.Current.Web; 

     String strUrl = web.ServerRelativeUrl + "/_catalogs/masterpage/default.aster"; 

     this.MasterPageFile = strUrl; 
    } 
} 

J'ai également fait remarquer dans le web.config, et j'inclus le Microsoft.SharePoint.dll comme référence dans le projet. J'ai ensuite abandonné le dossier entier sous _layouts \ TestWebsite \

Cependant, lorsque je passe à http://server/_layouts/TestWebSite/, j'obtiens une erreur 'Fichier non trouvé'. Y a-t-il quelque chose qui me manque ou un paramètre que j'aurais dû ignorer?

Merci.

Répondre

0

Vous devez configurer votre directive Page différemment et vous ne pouvez pas utiliser la méthode normale d'ajout d'une page ASP.net à un projet.

Ajoutez votre Assemblée

<%@ Assembly Name="Your.Four.Part.AssemblyName" %> 

Suivant supprimer l'attribut CodeFile et remplacer default.aspx.cs dans l'attribut Inherits avec le nom de la classe de page dans votre assemblée.

Votre directive page devrait ressembler à ceci:

<%@ Page Language="C#" Inherits="NameSpace.ClassNameInCodeBehind" MasterPageFile="~/_layouts/application.master" %> 

Si vous effectuez une recherche pour « code derrière dans SharePoint », vous trouverez de nombreux articles comme celui-ci: http://www.andrewconnell.com/blog/articles/UsingCodeBehindFilesInSharePointSites.aspx

Il aide également pour obtenir WSPBuilder ou STSDev pour des projets comme celui-ci. STSDev dispose même d'un modèle de projet Application Page with Navigation qui vous permettra de démarrer rapidement.

Questions connexes