Sop*_*hia 62 .net c# asp.net sharepoint code-behind
我有一个后面有C#代码的ASP.Net页面.
但是,我被要求不使用代码 - 因此在SharePoint中部署更容易.
有没有办法在ASP.Net页面中包含C#代码,而不使用单独的代码隐藏文件?
Rex*_*x M 92
默认情况下,Sharepoint不允许在ASPX文件中执行服务器端代码.请参阅此以了解如何解决此问题.
但是,我要提出,在Sharepoint中部署代码并不一定很困难(我们广泛地进行) - 只需将代码隐藏类编译成程序集并使用解决方案进行部署.
如果仍然没有,您可以包含通常放在代码隐藏中的所有代码,如下所示:
<script language="c#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
//hello, world!
}
</script>
Run Code Online (Sandbox Code Playgroud)
ach*_*a99 22
您实际上可以在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>
Run Code Online (Sandbox Code Playgroud)
您的aspx页面上的是包含runat = server的脚本标记
<script language="c#" runat="server">
public void Page_Load(object sender, EventArgs e)
{
// some load code
}
</script>
Run Code Online (Sandbox Code Playgroud)
您还可以使用经典的ASP语法
<% if (this.MyTextBox.Visible) { %>
<span>Only show when myTextBox is visible</span>
<% } %>
Run Code Online (Sandbox Code Playgroud)
SharePoint中有两种非常不同类型的页面:应用程序页面和网站页面.
如果您要将页面用作应用程序页面,则可以安全地在页面中使用内联代码或代码,因为应用程序页面位于文件系统上.
如果它将成为"站点"页面,只要您在初始部署中拥有它,就可以安全地编写内联代码.但是,如果您的站点页面将在未来某个时间进行自定义,则内联代码将不再有效,因为自定义站点页面位于数据库中并在asp.net的"无编译"模式下执行.
底线是 - 您可以使用内联代码编写aspx页面.唯一的问题是自定义网站页面...它将不再关心您的内联代码.
文件: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
Run Code Online (Sandbox Code Playgroud)