web-dev-qa-db-fra.com

Page ASP.net sans code derrière

J'ai une page ASP.Net avec un code C # derrière.

Cependant, on m'a demandé de ne pas utiliser de code derrière - afin qu'il soit plus facile à déployer dans SharePoint.

Existe-t-il un moyen d'inclure le code C # dans la page ASP.Net, sans utiliser un code séparé derrière le fichier?

61
Sophia

Par défaut, Sharepoint n'autorise pas l'exécution de code côté serveur dans les fichiers ASPX. Voir ceci pour savoir comment résoudre ce problème.

Cependant, je soulèverais que le fait d'avoir un code-behind n'est pas nécessairement difficile à déployer dans Sharepoint (nous le faisons intensivement) - compilez simplement vos classes code-behind dans un assembly et déployez-le en utilisant une solution .

Si ce n'est toujours pas le cas, vous pouvez inclure tout le code que vous placez normalement dans un code derrière comme ceci:

<script language="c#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
  //hello, world!
}
</script>
92
Rex M

Vous pouvez réellement avoir tout le code dans la page aspx. Comme expliqué ici .

Échantillon de ici :

<%@ Language=C# %>
<HTML>
   <script runat="server" language="C#">
   void MyButton_OnClick(Object sender, EventArgs e)
   {
      MyLabel.Text = MyTextbox.Text.ToString();
   }
   </script>
   <body>
      <form id="MyForm" runat="server">
         <asp:textbox id="MyTextbox" text="Hello World" runat="server"></asp:textbox>
         <asp:button id="MyButton" text="Echo Input" OnClick="MyButton_OnClick" runat="server"></asp:button>
         <asp:label id="MyLabel" runat="server"></asp:label>
      </form>
   </body>
</HTML>
21
achinda99

oui sur votre page aspx inclure une balise de script avec runat = server

<script language="c#" runat="server">

public void Page_Load(object sender, EventArgs e)
{
  // some load code
}
</script>

Vous pouvez également utiliser la syntaxe classique ASP Syntaxe

<% if (this.MyTextBox.Visible) { %>
<span>Only show when myTextBox is visible</span>
<% } %>
8
bendewey

Il existe deux types de pages très différents dans SharePoint: les pages d'application et les pages de site.

Si vous allez utiliser votre page en tant que page d'application, vous pouvez utiliser en toute sécurité le code en ligne ou le code derrière dans votre page, car les pages d'application vivent sur le système de fichiers.

S'il s'agit d'une page de site, vous pouvez écrire en toute sécurité du code en ligne tant que vous l'avez comme ça dans le déploiement initial. Cependant, si votre page de site va être personnalisée à un moment donné dans le futur, le code en ligne ne fonctionnera plus car les pages de site personnalisées vivent dans la base de données et sont exécutées en mode "pas de compilation" d'asp.net.

En fin de compte, vous pouvez écrire des pages aspx avec du code en ligne. Le seul problème est avec les pages du site personnalisées ... qui ne prendront plus soin de votre code en ligne.

8
Tudor Olariu

Je pensais que vous pouviez déployer uniquement votre page .aspx sans .aspx.cs tant que le DLL était dans votre bac. Une partie du problème ici est de savoir comment Visual Studio .net fonctionne avec .aspx pages.

Vérifiez-le ici: tilisation des pages de formulaires Web à fichier unique dans Visual Studio .NET

Je sais avec certitude que VS2008 avec asp.net MVC RC vous n'avez pas de fichiers code-behind pour vos vues.

4
IEnumerator

Fichier: logdate.aspx

<%@ Page Language="c#" %>
<%@ Import namespace="System.IO"%>
<%

StreamWriter tsw = File.AppendText(@Server.MapPath("./test.txt"));
tsw.WriteLine("--------------------------------");
tsw.WriteLine(DateTime.Now.ToString());

tsw.Close();
%>

Done
3
access_granted