C# 没有代码隐藏的ASP.net页面

C# 没有代码隐藏的ASP.net页面,c#,.net,asp.net,sharepoint,code-behind,C#,.net,Asp.net,Sharepoint,Code Behind,我有一个ASP.Net页面,后面有一个C#代码 但是,我被要求不要使用代码隐藏,这样在SharePoint中部署就更容易了 有没有一种方法可以在ASP.Net页面中包含C代码,而不使用单独的代码隐藏文件?您实际上可以在aspx页面中包含所有代码。如前所述 样本来自: void MyButton\u OnClick(对象发送方,事件参数e) { MyLabel.Text=MyTextbox.Text.ToString(); } 在您的aspx页面上包含一个带有runat=server的脚本标记

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

但是,我被要求不要使用代码隐藏,这样在SharePoint中部署就更容易了


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

您实际上可以在aspx页面中包含所有代码。如前所述

样本来自:


void MyButton\u OnClick(对象发送方,事件参数e)
{
MyLabel.Text=MyTextbox.Text.ToString();
}

在您的aspx页面上包含一个带有runat=server的脚本标记

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

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

公共无效页面加载(对象发送方,事件参数e)
{
//一些加载代码
}
您还可以使用经典的ASP语法

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

仅在myTextBox可见时显示

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

然而,我想提出的是,在Sharepoint中部署代码隐藏并不一定困难(我们经常这样做)——只需将代码隐藏类编译成程序集,然后使用

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

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

公共无效页面加载(对象发送方,事件参数e)
{
//你好,世界!
}

我以为只要DLL在您的bin中,就可以只部署.aspx页面而不部署.aspx.cs。这里的部分问题是visual studio.net如何处理.aspx页面

在这里查看:


我确信VS2008使用asp.net MVC RC时,您的视图中没有代码隐藏文件。

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

多恩

这是我们第一次真正使用SharePoint,我不确定这是否是正确的。我想再次强调Rex M的观点:你应该认真考虑使用程序集背后的代码并通过解决方案文件部署它们,而不是在部署更容易的情况下放宽SharePoint的安全性。这是最佳实践,实际上对解决方案文件非常简单。@RexM是否有可能在不使用c#?@FaizanRabbani的情况下开发ASP.NET项目?您可以使用VB.NET,但我无法理解您为什么要这样做。从技术上讲,你可以使用任何编译成MSIL的语言,但如果你使用的不是c#或VB,你就有点“开箱即用”。嗯,我有一个概念(我不知道这听起来有多愚蠢),我们只能通过使用客户端语言来创建项目。
<%@ 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