javascript - ASP.NET 代码隐藏文件在哪里执行? (客户端或服务器)

标签 javascript asp.net code-behind execution

我的 friend 是一位经验丰富的开发人员(但不熟悉 .NET),他问我 ASP.NET 代码隐藏代码实际上在哪里执行;在服务器或客户端上。我的假设是它在客户端上执行,因此编译为 JavaScript,因为代码隐藏文件中的方法将响应客户端事件,例如选择下拉列表,这不会导致回发。

我真正想要的是更深入地了解代码隐藏文件中的代码相对于应用程序的其余部分如何/在何处执行。

最佳答案

代码隐藏始终在服务器上执行。这就是原因,它也称为 ASP.NET WebForms。当网页执行时,简而言之,会发生以下情况。

  1. 网页被刷新为 HTML 表单
  2. Web 控件通过必要的 Javascript 刷新为 HTML 输入元素
  3. Javascript 保持原样(除非动态注入(inject))

下一个问题... ASP.NET 服务器端如何知道我在客户端执行了哪些事件,以便在服务器端执行适当的事件?

答案是,ASP.NET 将每个 Web 控件转换为一个或多个 html 元素,并对它们进行唯一命名,以便它可以获取生成事件的 HTML 元素的名称并采取相应的操作。它使用ViewState(除了各种其他用途)来确保 html 控件名称在往返过程中不被篡改。

其他答案中给出的链接应该可以帮助您了解更多信息。

关于javascript - ASP.NET 代码隐藏文件在哪里执行? (客户端或服务器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841316/

相关文章:

javascript - jQuery UI 中的更改未反射(reflect)在 Angular 模型上

javascript - 填写一个输入,但之前不要选择它。 HTML/JS?

c# - 无法将文本框中的值读入javascript变量

c# - 我应该在我的代码隐藏或 BusinessLogic 类中使用此功能

select - 如何在 c# 后面的代码中创建 html 选择?

javascript - 在 .NET 业务应用程序上使用 SAP OpenUI5

javascript - 着色 Highcharts 类别

c# - Asp.net mvc Url.Action 使用可为空参数重定向 Controller

c# - 如何修改使用asp :Content to css-page?的asp.net页面的样式

c# - SetFocus 通过 JavaScript 从代码隐藏进行控制