我的 friend 是一位经验丰富的开发人员(但不熟悉 .NET),他问我 ASP.NET 代码隐藏代码实际上在哪里执行;在服务器或客户端上。我的假设是它在客户端上执行,因此编译为 JavaScript,因为代码隐藏文件中的方法将响应客户端事件,例如选择下拉列表,这不会导致回发。
我真正想要的是更深入地了解代码隐藏文件中的代码相对于应用程序的其余部分如何/在何处执行。
最佳答案
代码隐藏始终在服务器上执行。这就是原因,它也称为 ASP.NET WebForms。当网页执行时,简而言之,会发生以下情况。
- 网页被刷新为 HTML 表单
- Web 控件通过必要的 Javascript 刷新为 HTML 输入元素
- Javascript 保持原样(除非动态注入(inject))
下一个问题... ASP.NET 服务器端如何知道我在客户端执行了哪些事件,以便在服务器端执行适当的事件?
答案是,ASP.NET 将每个 Web 控件转换为一个或多个 html 元素,并对它们进行唯一命名,以便它可以获取生成事件的 HTML 元素的名称并采取相应的操作。它使用ViewState
(除了各种其他用途)来确保 html 控件名称在往返过程中不被篡改。
其他答案中给出的链接应该可以帮助您了解更多信息。
关于javascript - ASP.NET 代码隐藏文件在哪里执行? (客户端或服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841316/