没有后台代码的ASP.net页面

我有一个C#代码后面的ASP.Net页面。

不过,我被要求不要使用代码,以便在SharePoint中部署更容易。

有没有一种方法可以在ASP.Net页面中包含C#代码,而不必在文件后面使用单独的代码?

默认情况下Sharepoint不允许在ASPX文件中执行服务器端代码。 看到这个如何解决这个问题。

不过,我会提出,在Sharepoint中部署代码并不一定困难(我们广泛地实现) – 只需将代码隐藏类编译为程序集并使用解决scheme进行部署即可。

如果仍然不是,那么您可以包含所有通常在代码隐藏中放置的代码,如下所示:

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

实际上你可以在aspx页面拥有所有的代码。 如这里所解释的。

从这里取样:

 <%@ 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> 

在SharePoint中有两种非常不同types的页面:应用程序页面和站点页面。

如果您要将页面用作应用程序页面,则可以安全地在页面中使用内联代码或代码,因为应用程序页面位于文件系统上。

如果这将是一个网站页面,只要在初始部署中具有这样的内容,就可以安全地编写内联代码。 但是,如果将来您的网站页面将在某个时间点进行自定义,则内联代码将不再工作,因为自定义的网站页面位于数据库中,并以asp.net的“无编译”模式执行。

底线是 – 你可以用内联代码写aspx页面。 唯一的问题是自定义网站页面…将不再关心你的内联代码。

是的,你的aspx页面包含一个runat = server脚本标签

 <script language="c#" runat="server"> public void Page_Load(object sender, EventArgs e) { // some load code } </script> 

您也可以使用传统的ASP语法

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

我以为你可以部署只.aspx.cs页面没有.aspx.cs只要DLL在你的斌。 这里的一部分问题是Visual Studio .net如何处理.aspx页面。

在此处查看: 使用Visual Studio .NET中的单一文件Web窗体页面

我知道确实VS2008与asp.net MVC RC你没有代码隐藏文件为您的意见。

文件: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