ASP.net C# 代码隐藏被认为是服务器端还是客户端?

Is ASP.net C# codebehind considered to be server-side or client-side?

提问人:DP27 提问时间:6/7/2017 最后编辑:masonDP27 更新时间:6/7/2017 访问量:4401

问:

我想说它只是从我的阅读和理解来看是服务器端的,但我希望能得到一些澄清。谢谢。

asp.net WebForms 客户端 服务器端 代码隐藏

评论

2赞 mason 6/7/2017
ASPX 本身也是服务器端,而不仅仅是代码。结果是发送到客户端浏览器的 HTML。

答:

6赞 Joel Coehoorn 6/7/2017 #1

代码隐藏绝对是服务器端的。它在您的 Web 服务器上运行,而不是在用户的浏览器客户端中运行。

此外,文件中标记的任何内容(aspx、ashx、asmx 等)都在服务器端处理。runat="server"*.as?x

3赞 John Wu 6/7/2017 #2

代码隐藏是用 c# 编写的。用 c# 编写的任何内容都会运行服务器端。毕竟,您的网页可以在任何设备上显示,包括缺少 .NET CLR 的设备;它们怎么可能在 iPhone 上运行?

此外,引用 .NET 对象的任何内容也必须在服务器端运行。毕竟,如果客户端没有 CLR,则无法与 .NET 对象通信。当您看到这样的标记时

<ASP:Button runat="server" id="MyButton">

...这意味着代码正在设置 .NET 对象(在本例中为按钮)的属性。所有这些都是服务器端代码。

ASP.NET 控件会发出 HTML 标记(以及其他内容),这些标记将返回到浏览器并在那里“执行”(解析)。HTML 通常根本不存在于您的代码中;它是由您的代码实时生成的,通常通过称为 Render 的方法。

但是,未标记的标记可以插入到您的网页中,并且此标记将与生成的 HTML 一起发送到浏览器。例如,此示例中只有第二行是服务器端的:runat="server"

<DIV id="This_Is_Client_Side">
    <ASP:Button id="This_Is_Server_Side" runat="server" />
</DIV>  

此外,项目中的任何 Javascript 或 CSS 文件都将发送到浏览器以在那里运行。

几乎所有其他内容都是服务器端代码。包括代码隐藏。