你是一名 ASP.NET 程序员......你的下一份工作面试即将到来......你想获得那份工作......所有这意味着你需要做好准备,尽管你在该领域知识渊博。一般来说,在技术工作面试中,面试官不仅会问复杂的问题,你甚至可能会遇到一些非常基础和基本的问题,这些问题可以决定胜负的机会。
ASP.Net常见的面试题和答案合集
你可能需要比这组问题更多的问题来为面试做好充分准备。我们建议你访问ASP .NET 教程和课程,在那里你可以找到更多阅读材料并全面掌握 ASP.NET。
问题:什么是 ASP.NET?
答: ASP.NET 是一个开源的服务器端应用程序框架,专为 Web 开发人员设计,使用 .NET 框架生成动态网页。它由 Microsoft 开发,允许程序员构建动态网站、Web 应用程序和 Web 服务。
ASP.Net常见的面试题有哪些:什么是 ASP.NET MVC 框架?
答: ASP.NET MVC 是 .NET 平台的 Web 应用程序框架,用于使用模型-视图-控制器模式构建全栈 Web 应用程序。
问题:什么是 ASP.NET Web API 框架?
答: ASP.NET Web API 纯粹用于构建后端 Web API,这些 API 可供一系列客户端使用,从 Web 到桌面再到移动设备。它构成了 RESTful(具象状态传输)架构中的服务器组件。
问题:哪个是用于 ASP.NET MVC 或 ASP.NET Web API 的正确框架?
ASP.Net面试题解析:如果你打算构建一个可以被一系列客户端轻松使用的服务器组件,那么 ASP.NET Web API 是最佳选择。但是,如果该项目纯粹用作 Web 应用程序,则 ASP.NET MVC 是更合适的选择。
问题:web.config 文件是什么,有什么用?
答: web.config 文件很重要,因为它包含应用程序的配置设置。它使你的整个配置与你的代码分开,因此你无需更改代码即可轻松更改设置。它还允许你潜在地加密配置设置以提高安全性。
问题:ASP.NET 中使用哪种编译器?
答: Roslyn 是 .NET Framework 使用的编译器的名称。
问题:ASP.NET 是开源的。解释。
答: Microsoft 正在以开源方式提供完整的 .NET 服务器堆栈,这意味着它是“免费”下载的。这包括 ASP.NET、.NET 编译器、.NET Core 运行时、框架和库,使开发人员能够跨 Windows、Mac 或 Linux 使用 .NET 进行构建。
问题:解释 ASP.NET MVC 框架中的请求流程。
答:请求流处理来自客户端的请求并将其传递给服务器。请求命中来自客户端的控制器。控制器扮演它的角色并决定使用哪个模型来进一步服务请求,将该模型传递给视图,然后视图转换模型并生成呈现给客户端的适当响应。
问题:解释ASP.NET中Session状态的各种模式?
答:会话状态的存储方式有多种:
- InProc:会话状态存储在 Web 服务器的内存中。这是默认模式。
- 自定义模式:你可以指定自定义存储提供程序。
- 关闭模式:禁用会话状态。
- OutProc:有两种方法可以处理这种模式:
- StateServer:会话状态存储在称为 ASP.net 状态服务的单独进程中。即使应用程序服务器重新启动,会话状态也会保留,并且可供多个 Web 服务器使用。
- SQLServer:会话状态存储在数据库中,因此即使 Web 应用程序重新启动也能保留会话状态。Web 场中的多个 Web 服务器可以访问会话状态。
问题:解释GridView和DataGrid的区别?
回答:
网格视图 | 数据网格 |
使用 PagerSettings 属性对分页、排序和就地编辑提供内置支持。 | 需要用于分页、排序和编辑的自定义代码。 |
使用数据源控件的排序、更新、删除和分页选项。 | 默认只支持数据选择。更新和删除需要自定义代码。 |
支持额外的列类型,如 HyperLinkField、ButtonField 等。 | 仅支持有限的列类型。 |
支持术前和术后事件。 | 为操作引发单个事件。 |
问题:你如何解释 ListView 和 Repeater 之间的区别?
回答:
中继器 | 列表显示 |
.NET 1.0 中引入的灵活布局。 | .NET 3.5 引入的灵活布局和轻松定制 |
没有内置支持,应该为数据分组和分页编写自定义代码。 | 为数据分组和分页提供内置支持。 |
不支持更新、插入、删除和排序操作。 | 支持所有操作。 |
提供更好的性能。 | 与中继器相比性能较慢。 |
ASP.Net常见的面试题有哪些:解释本地资源和全局资源?
回答:
本地资源 | 全局资源 |
本地资源只能由创建它的页面访问。 | 所有页面均可访问。 |
当网站有大量本地化内容时难以维护,因为每个页面都需要每种语言的资源文件。 | 每种语言只需要一个文件。 |
存储在 App_LocalResources 文件夹中。 | 存储在 App_GlobalResources 文件夹中。 |
问题:简要描述全球化和本地化?
答:全球化是企业在国界之外的增长。它涉及了解各国的法律法规,以营造营商环境。全球化包括内部化和本土化。
本地化是通过使产品对当地社区具有吸引力而将其提供给当地市场的过程。除了用当地语言翻译网页之外,它还包括当地偏好、文化和地区方面。
对于稳定的全球业务,你既需要全球化——通过它你可以增加你的业务范围和本地化——你可以根据本地偏好和其他方面展示定制的内容。
这些有助于有效的目标营销和有凝聚力的全球战略。
ASP.Net常见的面试题和答案合集:用户控件和自定义控件有何不同?
回答:
用户控制 | 自定义控件 |
存储为 .ascx 扩展名。 | 它是一个 .dll 扩展名。 |
他们有一个可视化界面。 | 这些控件没有可视化界面。 |
不出现在工具箱中,也没有设计支持;在运行时加载。 | 无需重新编译即可添加到工具箱中并用于各种应用程序。 |
如果我们需要特定于网站的控件,用户控件是一个不错的选择。 | 可以创建自定义控件以在各种应用程序中使用。 |
问题:解释 ASP.NET 中的服务器控件?
ASP.Net面试题解析:服务器控件是 ASP.NET 中的主要控件,分为以下几组:
- 验证控件:这些控件通过运行客户端脚本来验证用户输入
- 数据源控件:用于为多个数据源提供数据绑定。
- 数据视图控件:这些控件用于查看/显示从数据源获取的列表和表格数据
- 登录和安全控制:用于用户身份验证
- 母版页:用于为整个应用程序提供一致的界面和布局
- 丰富的控件:这些用于实现文件上传、日历控件、AdRotator 等特殊功能。
- 导航控件:帮助导航菜单、树视图等
- 个性化控件:用于根据用户信息和偏好对页面进行个性化
问题:解释 ASP.NET 中的各种页面事件?
答: ASP.NET 中的各种页面事件是:
事件 | 描述 |
页面请求 | 此事件发生在生命周期开始之前。每当用户请求页面时,ASP.NET 都会解析并编译该页面。 |
开始 | 设置请求和响应等属性,并通过此事件确定请求类型 |
初始化 | 此事件设置每个控件的 UniqueID 属性并将母版页应用于页面。 |
渲染 | 在这种情况下,为每个控件调用 'Render' 方法。文本编写器将输出(视图状态)写入页面的 Response 属性的 OutputStream 对象 |
加载 | 如果页面请求是回发,则控件属性会加载信息, |
回发事件处理 | 如果页面请求是回发,则通过此事件调用事件处理程序。之后调用所有验证器控件的Validate方法 |
卸下 | 此事件发生在请求的页面完全呈现并准备好停止之后。卸载所有属性,并完成清理。 |
问题:在 Web.config 文件中定义连接字符串?
答:连接字符串包含有关数据源以及如何连接到它的信息。
连接字符串添加如下:
<configuration>
<connectionStrings>
<add name="myConnection" connectionString="server=localhost;database=mydatabase;" />
</connectionStrings>
</configuration>
问:解释一下Web.config 和Machine.config 文件的区别?
回答:
网页配置 | 机器配置文件 |
存储特定 Web 应用程序的配置设置。 | 指定 Web 服务器上托管的所有网站的配置设置。 |
位于应用程序的根目录中。 | 位于 $WINDOWSDIR$\Microsoft.Net\Framework\Version\Config |
覆盖 machine.config 文件中的设置。 | 它是一个主文件,提供可以覆盖的默认设置。 |
问题:解释一下 Global.asax 文件?
答:它是一个可选文件,也称为 ASP.NET 的应用程序文件。它包含响应由 HTTP 模块或 ASP.NET 引发的会话级和应用程序级事件的代码。
问题:简述网站和Web应用程序的区别?
回答:
网站 | Web应用程序 |
包含对所有访问者公开可用的静态内容。 | 动态和交互式内容。 |
内容可供所有人阅读,但不能更改或操纵。 | 最终用户可以读取和操作受限数据。 |
这些主要是信息性网站,因此身份验证不是强制性的。 | 需要身份验证,因为它们为用户提供了更多功能和选项。 |
创建起来很简单,因为只需加载和更新信息。 | 由于存在与最终用户的交互,因此 Web 应用程序很复杂并且执行的功能更多。 |
网站是一个可以通过浏览器访问的完整产品。 | 它是整个网站的一部分。不能直接访问。 |
无需预编译,只需刷新HTML代码即可。 | 部署前需要预编译。 |
问题:解释视图状态?以及它的优缺点。
答:假设用户提交表单时出现验证错误或用户在页面上输入大量信息后页面刷新。在这种情况下,用户已经写入的信息将会丢失,他/她必须重新填写所有内容。为了避免这种情况发生,ASP.NET 使用了 ViewState,它保留了用户已经输入的值。它是一种用于保存表单数据的内置状态管理技术。
好处:
- 确保安全,因为数据以加密格式存储。
- 没有使用服务器资源。
- ViewState 属性可以轻松启用或禁用。
- 开发人员可以根据需要在页面级别或控件级别进行开发。
缺点:
- 如果存储了大量数据,加载页面的时间可能会比所需的时间长。
- 数据不会从一个页面传输到另一个页面(页面之间)。
问题:解释 ASP.NET 中的 Cookies?
回答: cookie 是存储用户特定数据的文本的一部分。Cookie 由浏览器存储在用户的硬盘驱动器中,并在用户请求特定页面时使用。根据作为数据一部分存储的日期和时间信息,Cookie 有助于改善用户体验和更快地加载页面。在 ASP 中,可以创建和检索 cookie。ASP 中有两种类型的 cookie——持久性和非持久性。
ASP.Net常见的面试题有哪些:解释一下 ASP.NET 中 Web 服务的用途?
答: ASP.NET 可以创建 Web 服务,这些服务只不过是使用 XML 通过常用 Internet 协议与其他软件程序交换数据的程序。我们可以使用网络服务通过互联网与任何对象进行通信。
Web 服务是独立于语言的、独立于平台的、独立于协议的、自描述的和可编程的。
问题:用示例解释 ASP.NET 中的应用程序域概念。
答: ASP.NET 中的应用程序域或应用程序域是一个轻量级进程,它有自己的一套代码、配置和数据设置。它是一个逻辑边界,将一个应用程序与其他应用程序的访问或干扰分隔开来。应用程序域通过使用更少的进程来执行不同的应用程序来帮助更好地利用资源。例如,ASP.NET 是一个运行时主机,它为访问网站的每个用户创建不同的应用程序域。这些可以为需要隔离代码或动态加载扩展的应用程序创建和设置。
问题:ASP中的查询字符串是什么?以及它的优缺点是什么?
答:查询字符串是一种使用浏览器 URL 在页面之间传输数据的方法。它使用问号符号 (?) 附加到 URL。例如http://xyz.com?userid=12334&pwd=rf5r5jm3smQ
优点:使用方便,不需要服务器资源,所有浏览器都支持,包含在URL的HTTP请求中
缺点:网址长度不能大于255个字符;数据对危害安全的每个人都是直接可见的。
问题:.NET 中的跟踪是什么?
答: .net 中的跟踪使人们能够跟踪页面的执行路径、调试应用程序并在运行时显示诊断信息。可以从代码中访问和操作跟踪消息,以便进行更精细的控制以添加更多详细信息。跟踪数据由 ASP.NET 组织成一组表。
问题:为什么我们在 .NET 中使用 CheckBox?
答:复选框用于从用户获取多个输入。用户可以从给定的选项中选择多个选项。代码中设置为yes/no或true/false选项,勾选时复选框的值为true,否则为false。
问题:解释 ASP.NET 中的 HTML 服务器控件?
答: HTML 服务器控件提供自动状态和服务器端事件管理。这些是具有 runat=server 属性的 HTML 元素。HTML 服务器控件属性和输出与其等效的 HTML 标记相同。这些控件是在编译 ASP.NET 应用程序时编译的。
问题:简述状态管理在ASP.NET中的应用?添加示例。
ASP.Net面试题解析: HTTP 是无状态的,即不记得用户的状态,例如他以前访问过的网站、请求和 URL。但是,对于某些请求,我们需要将应用程序的状态保持到最后,而 ASP.NET 对此有两种方法:
- 客户端状态管理:在这种方式中,状态信息直接存储在客户端机器上。每当有用户请求时,所需的信息来回传输以满足请求和响应——例如,cookie、查询字符串。
- 服务器端状态管理:在这种方法中,状态信息存储在用户内存中。与客户端相比,服务器端有更多安全域。应用程序状态和会话状态属于服务器端状态管理,包括 In-Proc、状态服务器和 SQL 服务器。
ASP.Net常见的面试题和答案合集:描述 ASP 中的登录控件?此外,添加源代码和示例。
答:登录控件提供了一个安全登录解决方案,带有用户界面和属性,用于自定义显示文本字段、消息以及忘记密码和其他页面的链接。
我们可以修改现有的 LoginControl 并选择格式。登录控件属性可以用 HTML 编写,如下所示:
<form id="form1" runat="server">
<div>
<asp:Login ID="Login1" runat="server" BackColor="#FFFFFF" BorderColor="#CDCC99" BorderStyle="Solid" BorderWidth="1px" Font-Names="Times New Roman" Font-Size="10pt">
<TitleTextStyle BackColor="#6B6B6B" Font-Bold="True" ForeColor="#E9967A" />
</asp:Login>
</div>
</form>
These can be set in CSS file too:
.LoginControl
{
background-color:#FFFFFF;
border-color:#CDCC99;
border-style:solid;
border-width:1px;
font-family:Times New Roman;
font-size:10px;
}
我们可以使用 CssClass 属性将 CSS 应用于控件:
<asp:Login ID="Login1" runat="server" CssClass="LoginControl">
问题:ASP.NET 中的“PostBack”是什么意思?
答:当用户采取某些操作(例如提交表单)将信息从页面发送到服务器以通过 POST 方法进行处理时,就会发生回发。
问题:简要解释 ASP.NET 页面生命周期。
答: ASP.NET 在每个页面的生命周期中经历一系列阶段。
- 页面请求。用户请求一个页面。ASP.NET 决定是编译它还是从缓存中提供它。
- 页开始。请求和响应对象被创建。
- 页面初始化。初始化所有页面控件,并应用任何主题。
- 页面加载。ASP.NET 使用视图状态和控件状态属性来设置控件属性。默认值在控件中设置。
- 回发事件处理。如果再次加载同一页面,则会触发此事件。
- 渲染。ASP.NET 保存页面的视图状态并将渲染的输出写入输出流。它发生在将完整的网页发送给用户之前。
- 卸下。呈现的页面被发送到客户端。ASP.NET 卸载页面属性并执行清理。从内存中删除所有不需要的对象。
问题:ASP.NET 中的视图状态是什么?
答:视图状态是在回发事件处理期间使用数据来保留 Web 窗体的页面值和控件值的地方。数据可以作为隐藏字段存储在客户端网页上。
问题:自定义控件和用户控件有什么区别?
答:自定义控件基本上是编译后的代码,即 DLL。这些可以轻松添加到工具箱中,因此可以通过拖放方法轻松地在多个项目中使用。这些控件比较难创建。但是用户控件 (.ascx) 就像页面 (.aspx)。这些相对容易创建,但与用户界面和代码紧密耦合。
问题:ASP.NET 中有哪些不同的验证器?
答: ASP.NET 验证控件在验证用户输入数据方面定义了一个重要角色。每当用户提供输入时,在将其发送到应用程序的各个层之前,必须始终对其进行验证。ASP.NET 中有两种类型的验证:
- 客户端验证
- 服务器端验证
客户端验证:在客户端浏览器上完成验证时,称为客户端验证。你可以使用 JavaScript 进行客户端验证。
服务器端验证:当验证发生在服务器上时,它被称为服务器端验证。服务器端验证是一种安全的验证形式。服务器端验证的主要优点是如果用户绕过客户端验证,问题可以在服务器端被发现。
以下是 ASP.NET 中的验证控件:
- RequiredFieldValidator 控件
- 比较验证器控件
- 范围验证器控件
- 正则表达式验证器控件
- 自定义字段验证器控件
- 验证摘要
问题: ASP.NET 中的 Finalize 方法有什么作用?
答: Finalize 方法用于对对象持有的非托管资源执行清理操作。它将一个对象放入终结队列。然后对象将被垃圾收集器收集准备好清理。
问题:ASP.Net 中的 RedirectPermanent 是什么?
答案: RedirectPermanent 执行从请求的 URL 到指定 URL 的永久重定向。重定向完成后,它还会向浏览器返回 http 301 状态代码。
问题:LoginStatus 控件的作用是什么?
答: LoginStatus 控件用于根据当前用户的登录/授权状态显示登录/注销链接。如果用户成功登录,将显示注销链接。
问题:什么是中继器控件,中继器支持哪些模板?
答: Repeater 是一个数据绑定控件。数据绑定控件是容器控件。它在数据源和演示 UI 之间创建链接以显示数据。重复控件用于显示重复的项目列表。一个中继器有五个内联模板来格式化它:
- 显示数据源集合的标题文本并为标题文本应用不同的样式。
- 更改数据源集合中交替项的背景颜色或样式。
- 它定义了如何从数据源集合中呈现每个项目。
- 它将确定分隔项目集合中每个项目的分隔符元素。它可能是一个
或
HTML 元素。 - 显示数据源集合的页脚元素。
问题:ASP.NET 中有哪些不同的会话状态管理选项?
答:进程内和进程外是两个会话状态管理选项。
- In-Process 将会话存储在 Web 服务器的内存中。
- 进程外会话状态管理将数据存储在外部服务器中。存储在会话中的所有对象都需要可序列化。
问题:Server.Transfer 和 Response.Redirect 有什么区别?
答:服务器。Transfer 将信息从一个 Web 请求发送到另一个 Web 请求,所有这些都在服务器端。响应不会发送到浏览器。另一方面,Response.Redirect向浏览器发送 HTTP 302 消息并导致浏览器中的重定向。
问题:什么是片段缓存?
答:片段缓存是指在 Web 窗体中缓存单个用户控件。每个用户控件都可以有独立的缓存持续时间和缓存行为如何应用的实现。当你只需要缓存页面的一个子集时,片段缓存很有用。
问题:ASP.NET 中的 Web 控件是什么?
答: Web 控件是 .NET 框架中的类。控件具有服务器理解的特殊标签。它们是在服务器上创建的,需要一个 run at=”server” 属性来执行。它们生成发送回浏览器的 HTML 代码。
问题:请给出一些 Web 控件的示例。
回答:
- 按钮
- 日历
- 复选框列表
- 下拉列表
- 单选按钮列表
问题:什么是网络服务?
答:在 .NET 上下文中,Web 服务是驻留在 Web 服务器上的组件,它使用标准 Web 协议(例如 HTTP 和简单对象访问协议 (SOAP))向其他网络应用程序提供信息和服务。
问题:会话对象和应用程序对象有什么区别?
答:会话对象和应用程序对象的区别在于所有用户共享一个应用程序对象,而会话对象是每个用户一个会话对象。应用程序对象中存储的数据可以被应用程序的所有会话共享。应用程序对象将数据存储在键值对中。会话对象存储特定于会话的信息并且该信息仅在会话内可见。ASP.NET 为应用程序的每个会话创建唯一的 SessionId。SessionID 由 HTTP cookie 或修改后的 URL 维护,如应用程序配置设置中设置的那样。默认情况下,SessionID 值存储在 cookie 中。
问题:什么是缓存,使用它有什么好处?
答:缓存是一种通过将数据存储在内存中以便更快访问来提高应用程序性能的机制。当应用程序从缓存(即内存中)访问数据而不是从原始数据存储(可能是数据库)中获取数据时,它肯定会提高性能。但是缓存的好处不仅限于性能;它还提高了应用程序的可扩展性和可用性。
ASP.Net常见的面试题有哪些:ASP.NET 中的身份验证类型有哪些?
答: ASP.NET 中提供了三种类型的身份验证:
- Windows 身份验证:此身份验证方法使用内置的 Windows 安全功能对用户进行身份验证。
- 表单身份验证:根据自定义的用户列表或数据库中的用户进行身份验证。
- Passport 身份验证:针对 Microsoft Passport 服务进行验证,该服务基本上是一种集中式身份验证服务。
问题:什么是 ASP.NET AJAX?
ASP.Net面试题解析: Microsoft 提供了一种称为 ASP.NET AJAX 的 AJAX 功能实现。AJAX 代表异步 JavaScript 和 XML。这是一种跨平台技术,可加快响应时间并减少客户端和服务器之间的流量。ASP.NET AJAX 是一组对 ASP.NET 的扩展,并带有可重用的 AJAX 控件。
问题:什么是REST架构?
答: REST(表述性状态传输)是一种用于设计应用程序的架构风格,它规定使用 HTTP 进行通信调用,而不是像 CORBA、RPC 或 SOAP 这样的复杂机制。与 REST 架构风格相关的原则很少:
- 一切都是资源,即文件、图像、视频、网页等。
- 每个资源都由唯一标识符标识。
- 使用简单和统一的接口。
- 一切都是通过表示完成的(从客户端向服务器发送请求并从服务器到客户端接收响应)。
- 无状态 - 每个请求都应该是一个独立的请求。
ASP.Net常见的面试题和答案合集:ASP.NET 是跨平台的解释。
答: ASP.NET 应用程序可以在任何操作系统上开发和运行,如 Windows、Linux、macOS 和 Docker。因此它被称为跨平台框架。
问题:ASP.NET 中的 Razor 是什么
答: Razor 是一种标记语法,可让你将基于服务器的代码(Visual Basic 和 C#)嵌入到网页中。基于服务器的代码可以即时创建动态 Web 内容,同时将网页写入浏览器。当一个网页被调用时,服务器会在将页面返回给浏览器之前执行页面内基于服务器的代码。通过在服务器上运行,代码可以执行复杂的任务,例如访问数据库。Razor 基于 ASP.NET,专为创建Web 应用程序而设计。它具有传统 ASP.NET 标记的强大功能,但更易于使用和学习。
问题:什么是 ASP.NET Core?
答: ASP.NET Core 是 ASP.NET 的开源和跨平台版本。在 ASP.NET Core 之前存在的仅适用于 Windows 的 ASP.NET 版本通常简称为 ASP.NET。