66

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

但是,我被要求不要使用背后的代码 - 这样会更容易在 SharePoint 中部署。

有没有办法在 ASP.Net 页面中包含 C# 代码,而不使用单独的代码隐藏文件?

4

6 回答 6

98

默认情况下,Sharepoint 不允许在 ASPX 文件中执行服务器端代码。有关如何解决该问题,请参阅此内容。

但是,我会提出,在 Sharepoint 中部署代码隐藏并不一定很困难(我们广泛这样做) - 只需将您的代码隐藏类编译到程序集中并使用解决方案部署它。

如果仍然没有,您可以将通常放置在代码隐藏中的所有代码包括在内,如下所示:

<script language="c#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
  //hello, world!
}
</script>
于 2009-02-19T01:36:45.213 回答
26

您实际上可以在 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>
于 2009-02-19T01:33:03.117 回答
10

是的,在您的 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>
<% } %>
于 2009-02-19T01:33:40.617 回答
8

SharePoint 中有两种截然不同的页面:应用程序页面和网站页面。

如果您打算将您的页面用作应用程序页面,您可以安全地在页面中使用内联代码或代码隐藏,因为应用程序页面存在于文件系统中。

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

底线是 - 您可以使用内联代码编写 aspx 页面。唯一的问题是自定义站点页面......它不再关心您的内联代码。

于 2009-02-19T15:47:41.773 回答
5

文件: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
于 2017-02-09T01:48:38.153 回答
4

我认为只要 DLL 在您的 bin 中,您就可以只部署没有 .aspx.cs 的 .aspx 页面。这里的部分问题是visual studio .net 如何与.aspx 页面一起工作。

在此处查看: 在 Visual Studio .NET 中使用单文件 Web 表单页面

我确信带有 asp.net MVC RC 的 VS2008 没有用于视图的代码隐藏文件。

于 2009-02-19T01:44:57.907 回答