55 个最常见 MVC 面试问题及答案 (PDF)
面向应届毕业生的 MVC 面试问题和答案
1)什么是模型-视图-控制器?
MVC 是用于开发 Web 应用程序的软件架构模式。它由三个对象(模型、视图和控制器)处理。
2)模型-视图-控制器在 MVC 应用程序中代表什么?
在 MVC 模型中,
- 型号– 它代表应用程序数据域。换句话说,应用程序的业务逻辑包含在模型中,并负责维护数据。
- 首页– 它代表最终用户与之通信的用户界面。简而言之,所有用户界面逻辑都包含在 View 中。
- 控制器- 控制器负责响应用户的操作。根据用户的操作,相应的控制器会在模型中做出响应,并选择要渲染的视图来显示用户界面。用户输入逻辑包含在控制器中。
3)命名程序集以定义MVC
这个 MVC框架 在 System.Web.Mvc 程序集中定义。
4)控制器操作方法有哪些不同的返回类型
以下是控制器操作方法的不同返回类型:
- 查看结果
- Java脚本结果
- 重定向结果
- JSON 结果
- 内容结果
5)向 WebForm 应用程序和 MVC 应用程序添加路由有什么区别?
要向 Web 表单应用程序添加路由,我们使用 RouteCollection 类的 MapPageRoute() 方法,而要向 MVC 应用程序添加路由,我们使用 MapRoute() 方法。
6)给路线添加约束有哪两种方法?
向路由添加约束的两种方法是
- 使用正则表达式
- 使用实现 IRouteConstraint 接口的对象
7)MVC 有什么优点?
- MVC 将您的项目隔离到不同的部分,并且开发人员可以轻松地进行工作
- 可以轻松编辑或更改项目的某些部分,从而减少项目的开发和维护成本
- MVC让你的项目更系统化
- 它代表了业务逻辑和表示逻辑之间的明确分离
- 每个 MVC 对象都有不同的职责
- 开发并行进行
- 易于管理和维护
- 所有类和对象都相互独立
8)Controller 中的“beforeFilter()”,“beforeRender”和“afterFilter”函数起什么作用?
- 之前过滤器(): 此函数在控制器中的每个操作之前运行。它是检查活动会话或检查用户权限的正确位置。
- 渲染前(): 此函数在控制器操作逻辑之后、视图呈现之前调用。此函数不常用,但如果您在给定操作结束之前手动调用 render(),则可能需要此函数。
- 过滤后(): 此函数在每个控制器操作之后以及渲染完成后调用。它是最后一个运行的控制器方法。
9) MVC 中组件表示、抽象和控制的作用是什么?
以下是 MVC 中组件表示、抽象和控制的作用:
- 介绍: 它是应用程序中特定抽象的可视化表示
- 抽象: 它是应用程序中的业务域功能
- 控制: 它是一个组件,除了与系统内的其他控件通信之外,还保持系统内的抽象与其向用户的呈现之间的一致性
10)MVC 模型有什么缺点?
以下是 MVC 模型的一些重要缺点:
- 模型图案有点复杂。
- 视图中数据访问效率低下。
- 对于现代用户界面来说,使用 MVC 非常困难。
- 您需要多名程序员进行并行开发。
- 需要多种技术知识。
11)MVC中“ActionFilters”起什么作用?
在 MVC 中,“ActionFilters”帮助您在 MVC 动作执行或正在执行时执行逻辑。
12)MVC项目执行的步骤是什么?
MVC项目执行的步骤包括:
- 接收应用程序的第一个请求
- 执行路由
- 创建 MVC 请求处理程序
- 创建控制器
- 执行控制器
- 调用动作
- 执行结果
13)什么是路由和三段?
路由可帮助您确定 URL 结构并将 URL 映射到控制器。
对于路由而言重要的三个段是:
- 控制器名称
- 动作方法名称
- 产品型号
14)在 MVC 模式中如何进行路由?
有一组称为 RouteCollection 的路由,它由应用程序中注册的路由组成。RegisterRoutes 方法记录此集合中的路由。路由定义 URL 模式和处理程序,如果请求与该模式匹配,则使用这个处理程序。
MapRoute 方法的第一个参数是路由的名称。第二个参数是 URL 匹配的模式。如果未确定占位符,则第三个参数可能是占位符的默认值。
15)如何使用超链接从一个视图导航到另一个视图?
通过使用“ActionLink”方法,如下面的代码所示。下面的代码将创建一个简单的 URL,帮助导航到“Home”控制器并调用“GotoHome”操作。
折叠/复制代码
<%= Html.ActionLink("Home", "Gotohome") %>
经验丰富的 MVC 面试问题和答案
16)MVC 中如何维护会话?
在 MVC 中会话可以通过三种方式维护:tempdata、viewdata 和 viewbag。
17)Temp数据、View数据和View Bag之间有什么区别?
- 温度数据: 当您从一个控制器转移到另一个控制器时,它有助于维护数据。
- 查看数据: 当您从控制器移动到视图时,它有助于维护数据。
- 查看购物袋: 它是视图数据的动态包装器。
18)MVC 中的部分视图是什么?
MVC 中的分部视图渲染部分视图内容。它有助于减少代码重复。简单来说,分部视图允许在父视图中渲染视图。
19)如何在 MVC 中实现 Ajax?
在MVC中,Ajax可以通过两种方式实现
- Ajax 库
- jQuery的
20)“ActionResult”和“ViewResult”有什么区别?
“ActionResult” 是一个抽象类,而“ViewResult” 派生自“AbstractResult”类。“ActionResult” 有许多派生类,如“JsonResult”、“FileStreamResult”和“ViewResult”。
如果您要动态获取不同类型的视图,“ActionResult”是最好的。
21) 如何在 MVC 中以 JSON 格式返回结果?
为了在 MVC 中以 JSON 格式发送回结果,您可以使用“JSONRESULT”类。
22)View 和 Partial View 有什么区别?
这是 View 和 Partial View 之间的区别
首页 | 局部视图 |
---|---|
它包含布局页面 | 它不包含布局页面 |
在呈现任何视图之前,呈现 viewstart 页面 | 局部视图不验证 viewstart.cshtml。 我们不能将部分视图的通用代码放在 viewStart.cshtml.page 中 |
View 可能有标记标签,如 body、html、head、title、meta 等。 | 部分视图是专门为在视图内呈现而设计的,正因为如此,它不包含任何标记 |
与局部视图相比,视图并不轻量级 | 我们可以将常规视图传递给 RenderPartial 方法 |
23) MVC 中的结果类型有哪些?
在 MVC 中,结果类型有 11 种,其中“ActionResult”类是主类,其他 XNUMX 种是其子类型:
- 查看结果
- 部分查看结果
- 空结果
- 重定向结果
- 重定向到路由结果
- 结果
- Java脚本结果
- 内容结果
- 文件内容结果
- 文件流结果
- 文件路径结果
24)NonActionAttribute 的重要性是什么?
控制器类的所有公共方法都被视为操作方法,如果您想阻止此默认方法,则必须使用 NonActionAttribute 分配公共方法。
25)默认路由{resource}.axd/{*pathinfo}有什么用?
默认路由阻止将对 Web 资源文件(例如 Webresource.axd 或 ScriptResource.axd)的请求传递到控制器。
26) 如果实现了多个过滤器,那么执行的过滤器的顺序是怎样的?
过滤顺序如下:
- 授权过滤器
- 动作过滤器
- 响应过滤器
- 异常过滤器
27)最终执行了哪些 ASP.NET 过滤器?
最后执行“异常过滤器”。
28)Razor Views 的文件扩展名是什么?
对于 Razor 视图,文件扩展名是
- .cshtml:如果 C# 是编程语言
- .vbhtml:如果 VB 是编程语言
29)给路线添加约束有哪两种方法?
为路线添加约束的两种方法是:
- 使用正则表达式
- 使用实现 IRouteConstraint 接口的对象
30)哪两种情况没有实现或不需要路由?
不需要路由的两个情况是
- 当找到与 URL 模式匹配的物理文件时
- 为 URL 模式禁用路由时
针对 5 年经验的 MVC 面试问题
31)MVC 的特点是什么?
以下是 MVC 的特点:
- 简单且无摩擦的可测试性。高度可测试、可扩展且可插入的框架。
- 提供对 HTML 和 URL 的完全控制
- 利用 ASP.NET、JSP、Django 等提供的现有功能。
- 清晰的逻辑分离:模型、视图、控制器。通过业务逻辑、UI 逻辑和输入逻辑分离应用程序任务。
- 针对 SEO 友好 URL 的 URL 路由。针对可理解和可搜索 URL 的强大 URL 映射。
- 支持测试驱动开发 (TDD)。
32)MVC 的真实示例有哪些?
以下是 MVC 的真实示例:
- 假设您去一家餐馆。您不会去厨房准备食物,而您在家里肯定可以做。相反,你只需去那里等待服务员上门即可。
- 现在服务员过来了,你只要点菜就可以了。服务员不知道你是谁,也不知道你想要什么,他只是写下了你点的菜的详细信息。
- 然后,服务员移至厨房。在厨房里,服务员不会准备您的食物。
- 厨师为您准备食物。服务员会收到您的订单以及桌号。
- 然后厨师为你准备食物。他使用食材烹饪食物。假设你点了一份蔬菜三明治。那么他需要面包、西红柿、土豆、辣椒、洋葱、碎肉、奶酪等,这些食材都来自冰箱
- 厨师终于把食物交给了服务员。现在服务员的工作就是把这些食物移出厨房。
- 现在服务员知道您点了什么菜以及如何上菜。
在这种情况下,
View= You Waiter= Controller Cook= Model Refrigerator= Data
33)三层和四层有什么区别? Archi架构与MVC Archi结构?
这是三层之间的区别 Archi架构与MVC Archi結構:
产品型号 | 3层 Archi质地 | MVC Archi质地 |
---|---|---|
外场通讯 | 这种类型的架构模式从不直接与数据层通信。 | 所有层都使用三角形拓扑直接通信。 |
用法 | 3 层:广泛用于客户端、数据层和中间件在物理上独立的平台上运行的 Web 应用程序中。 | 通常用于在单个图形工作站上运行的应用程序。 |
34) 如何在 JSP 中使用 MVC 架构?
下面的例子展示了在 JSP 中使用 MVC 架构:
- 我们以一个包含两个变量“电子邮件”和“密码”的表单为例,它是我们的视图层。
- 一旦用户输入电子邮件和密码并单击提交,操作就会在 mvc_servlet 中传递,电子邮件和密码也会在其中传递。
- 这个 mvc_servlet 是控制器层。在 mvc_servlet 中,请求被发送到充当模型层的 bean 对象。
- 电子邮件和密码值被设置到 bean 中并存储以供进一步使用。
- 从 bean 中获取值并显示在视图层。
Mvc_示例.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>MVC Guru Example</title> </head> <body> <form action="Mvc_servlet" method="POST"> Email: <input type="text" name="email"> <br /> Password: <input type="text" name="password" /> <input type="submit" value="Submit" /> </form> </body> </html>
Mvc_servlet.java
package demotest; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Mvc_servlet */ public class Mvc_servlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Mvc_servlet() { super(); // TODO Auto-generated constructor stub } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String email=request.getParameter("email"); String password=request.getParameter("password"); TestBean testobj = new TestBean(); testobj.setEmail(email); testobj.setPassword(password); request.setAttribute("gurubean",testobj); RequestDispatcher rd=request.getRequestDispatcher("mvc_success.jsp"); rd.forward(request, response); } }
测试Bean.java
package demotest; import java.io.Serializable; public class TestBean implements Serializable{ public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } private String email="null"; private String password="null"; }
Mvc_success.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@page import="demotest.TestBean"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Success</title> </head> <body> <% TestBean testguru=(TestBean)request.getAttribute("gurubean"); out.print("Welcome, "+testguru.getEmail()); %> </body> </html>
35)MVC 在 Spring 中如何工作?
以下是 Spring 中 MVC 的工作方式:
- DispatcherServlet 接收请求。
- 之后,DispatcherServlet 与 HandlerMapping 进行通信。它还会撤销与该特定请求关联的控制器。
- Controller 通过调用服务方法来处理该请求,并且 DispatcherServlet 返回一个 ModelAndView 对象。
- 视图名称被发送到 ViewResolver 以查找要调用的实际视图。
- 之后DispatcherServlet被传递给View来渲染结果。
- 通过使用模型数据,视图进行渲染并将结果返回给用户。
36) 创建 MVC 应用程序时需要记住哪些要点?
创建 MVC 应用程序时需要记住以下一些要点:
- 您需要记住,ASP.net MVC 不能替代基于 ASP.Net Web 表单的应用程序
- MVC 应用程序开发的方法必须根据应用程序要求和 ASP.net MVC 提供的功能来决定,以满足特定的开发需求。
- 与基于 Web 窗体的应用程序相比,使用 ASP.NET MVC 的应用程序开发过程更为复杂。
- 随着应用程序任务的分离,应用程序的可维护性总是更高。
37)Web Forms 和 MVC 有什么区别?
以下是 Web 窗体和 MVC 之间的区别:
参数 | Web窗体 | MVC |
---|---|---|
型号 | Asp.Net Web Forms 遵循事件驱动的开发模型。 | Asp.Net MVC采用基于MVC模式的开发模型。 |
使用以来 | 自 2002 年起 | 它于 2009 年首次发布 |
支持视图状态 | Asp.Net Web Forms 支持视图状态,用于客户端的状态管理。 | .Net MVC 不支持视图状态。 |
网址类型 | Asp.Net Web Forms 具有基于文件的 URL。这意味着文件名存在于 URL 中,并且它们必须物理存在。 | Asp.Net MVC 具有基于路由的 URL,这意味着 URL 被重定向到控制器和操作。 |
句法 | Asp.Net MVC 遵循 Web 窗体语法。 | Asp.Net MVC 遵循可定制的语法。 |
视图类型 | Web 表单视图与隐藏代码(ASPX-CS)(即逻辑)紧密耦合。 | MVC 视图和逻辑始终是分开保存的。 |
一致的外观和感觉 | 它具有主页以保持一致的外观。 | Asp.Net MVC 具有一致外观的布局。 |
代码可重用性 | Web 窗体为用户提供代码可重用性的控件。 | Asp.Net MVC 提供了部分视图以实现代码可重用性。 |
HTML 控件 | Less 控制呈现的 HTML。 | 完全控制 HTML |
状态管理 | 控制的自动状态管理。 | 手动状态管理。 |
TDD 支持 | 需要弱或定制的 TDD。 | 鼓励并纳入 TDD! |
38) 如何在 CodeIgniter 中显示某些内容?
以下是在 CodeIgniter 中显示某些内容的代码:
<?=$title?> As opposed to <?php echo $title; ?> Control structures are usually written as follows <?php foreach ($customers as $customer): ?> <li> <p><?=$customer->first_name?><p> </li> <?php endforeach; ?>
39) 编写代码来演示 CodeIgniter 中的模型、视图和控制器。
下面是 CodeIgniter 中演示模型、视图和控制器的代码:
打开位于 application/controllers 的文件 Welcome.php 控制器:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
更新索引如下:
public function index() { $this->load->model('customers_model'); $data['customer'] = $this->customers_model->get_customer(3); $this->load->view('welcome_message',$data); }
在 application/models 中的 customer_model.php 中写入以下代码。
<?php class Customers_model extends CI_Model { public function get_customer($id) { $data['id'] = 3; $data['first_name'] = 'John'; $data['last_name'] = 'Doe'; $data['address'] = 'Kingstone'; return $data; } }
打开位于
application/views/welcome_message.php
将代码替换为以下内容
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>CodeIgniter MVC Basics</title> </head> <body> <h3>Customer Details Card</h3> <p>Customer ID : <strong><?=$customer['id']?></strong></p> <p>First Name : <strong><?=$customer['first_name']?></strong></p> <p>Last Name : <strong><?=$customer['last_name']?></strong></p> <p>Address : <strong><?=$customer['address']?></strong></p> </body> </html>
40) 您能创建一个同时具有 Web 窗体和 MVC 的 Web 应用程序吗?
是的。您需要在 Web 表单应用程序中包含以下 MVC 程序集引用才能创建混合应用程序。
System.Web.Mvc System.Web.Razor System.ComponentModel.DataAnnotations
41) 如何为 ASP.NET Web API Action 分配别名?
我们可以使用“ActionName”属性为 Web API 操作指定与 ASP.NET MVC 相同的别名,如下所示:
[HttpPost] [ActionName("SaveStudentInfo")] public void UpdateStudent(Student aStudent) { StudentRepository.AddStudent(aStudent); }
42)MVC 和 WebAPI 的主要区别是什么?
以下是 MVC 和 WebAPI 之间的主要区别:
MVC 框架用于开发具有用户界面的应用程序。为此,可以使用视图来构建用户界面。
WebAPI 用于开发 HTTP 服务。其他应用也可以调用 WebAPI 方法来获取该数据。
43)如何确保 Web API 只返回 JSON 数据?
为了使 Web API 将返回对象序列化为 JSON 格式并仅返回 JSON 数据。为此,您应该在任何 MVC Web API 项目中的 WebApiConfig.cs 类中添加以下代码:
//JsonFormatter //MediaTypeHeaderValue Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json")); 1 2 3 //JsonFormatter //MediaTypeHeaderValue Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"))
44)MVVM 和 MVC 有什么区别?
以下是 MVVM 和 MVC 之间的重要区别:
MVC | MVVM |
---|---|
控制器是应用程序的入口点。 | 视图是应用程序的入口点。 |
控制器和视图之间的一对多关系。 | 视图与视图模型之间的一对多关系。 |
视图没有引用控制器 | 视图有对视图模型的引用。 |
MVC 是旧模型 | MVVM 是一个相对较新的模型。 |
难以阅读、更改、单元测试和重用此模型 | 当我们有复杂的数据绑定时,调试过程将会变得复杂。 |
MVC模型组件可以与用户分开测试 | 易于进行单独的单元测试并且代码是事件驱动的。 |
45)AngularJS 中的 MVC 是什么?
Angular.js遵循MVC架构,MVC框架图如下所示。
- 控制器代表具有业务逻辑的层。用户事件触发存储在控制器中的功能。用户事件是控制器的一部分。
- 视图用于表示向最终用户提供的表示层。
- 模型用于表示您的数据。模型中的数据可以简单到只有原始声明。例如,如果您正在维护一个学生应用程序,您的数据模型可能只有学生 ID 和姓名。或者它也可以通过结构化数据模型而变得复杂。如果您正在维护一个汽车所有权应用程序,您可以使用结构来定义车辆本身,包括其发动机容量、座位容量等。
46)MVC 在 AngularJS 中的作用是什么?
以下是 AngularJS 控制器工作原理的简单定义。
- 控制器的主要职责是控制传递给视图的数据。范围和视图具有双向通信。
- 视图的属性可以调用作用域上的“函数”。此外,视图上的事件可以调用作用域上的“方法”。下面的代码片段给出了一个函数的简单示例。
- 定义控制器时定义的函数($scope)和用于返回$scope.firstName 和 $scope.lastName 的连接的内部函数。
- 在 AngularJS 中,当你将函数定义为变量时,它被称为方法。
- 数据以这种方式从控制器传递到范围,然后数据在范围和视图之间来回传递。
- 范围用于将模型暴露给视图。可以通过范围中定义的方法修改模型,这些方法可以通过视图中的事件触发。我们可以定义从范围到模型的双向模型绑定。
- 理想情况下,控制器不应该用于操作 DOM。这应该由指令来完成,我们将在后面看到。
- 最佳实践是根据功能来设置控制器。例如,如果您有一个用于输入的表单,并且需要一个控制器,那么请创建一个名为“表单控制器”的控制器。
47)如何在 AngularJS 中构建基本控制器
下面的代码片段是一个简单的 HTML 页面,标题为“活动注册”,并引用了以下重要库: Bootstrap、jquery 和 Angular。
- 我们正在添加对 bootstrap CSS 样式表的引用,它们将与 bootstrap 库一起使用。
- 我们正在添加对 AngularJS 库的引用。所以现在,无论我们对 angular.js 进行什么操作,都会引用这个库。
- 我们正在添加对引导库的引用,以使我们的网页对某些控件的响应更快。
- 我们添加了用于 DOM 操作的 jquery 库的引用。这是 Angular 所必需的,因为 Angular 中的某些功能依赖于此库。
默认情况下,上述代码片段将出现在我们所有的示例中,以便我们可以在后续部分仅显示特定的 angularJS 代码。
其次,让我们看看我们将要开始课程的文件和文件结构:
- 首先,我们将文件分成 2 个文件夹,就像任何传统的 Web 应用程序一样。我们有“CSS”文件夹。它将包含我们所有的层叠样式表文件,然后我们将有“lib”文件夹,它将包含我们所有的 JavaScript 文件。
- bootstrap.css 文件放在 CSS 文件夹中,用于为我们的网站添加良好的外观和感觉。
- angular.js 是我们的主要文件,它是从 angularJS 网站下载并保存在我们的 lib 文件夹中。
- app.js 文件将包含我们的控制器代码。
- bootstrap.js 文件用于补充 bootstrap.cs 文件,以便为我们的 Web 应用程序添加引导功能。
- jquery 文件将用于向我们的网站添加 DOM 操作功能。
使用 angular.js 的示例:
我们在这里要做的只是在浏览器中查看页面时以文本格式和文本框中显示单词“AngularJS”。
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <link rel="stylesheet" href="css/bootstrap.css"/> </head> <body> <h3> Guru99 Global Event</h3> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="lib/angular.js"></script> <script src="lib/bootstrap.js"></script> <script src="lib/jquery-1.11.3.min.js"></script> <div ng-app="DemoApp" ng-controller="DemoController"> Tutorial Name : <input type="text" ng-model="tutorialName"><br> This tutorial is {{tutorialName}} </div> <script> var app = angular.module('DemoApp',[]); app.controller('DemoController', function($scope){ $scope.tutorialName = "Angular JS"; }); </script> </body> </html>
48)AngularJS 中外部文件中的 ng-controller 有什么用
执行以下步骤在 AngularJS 中的外部文件中使用 ng-controller
步骤1) 在 app.js 文件中,为控制器添加以下代码
angular.module('app',[]).controller('HelloWorldCtrl',function($scope) { $scope.message = "Hello World" });
步骤2) 现在,在您的 Sample.html 文件中,添加一个包含 ng-controller 指令的 div 类,然后添加对成员变量“message”的引用。
<!DOCTYPE html> <html ng-app="app"> <head> <meta chrset="UTF 8"> <title>Event Registration</title> <link rel="stylesheet" href="css/bootstrap.css"/> </head> <body> <h3> Guru99 Global Event</h3> <div class="container"> <div ng-controller="HelloWorldCtrl">{{message}}</div> </div> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="lib/angular.js"></script> <script src="lib/bootstrap.js"></script> <script src="lib/jquery-1.11.3.min.js"></script> <script src="app.js"></script> </body> </html>
49)编写代码来定义 AngularJS Controller 中的方法?
以下是在 AngularJS Controller 中定义方法的代码:
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> <link rel="stylesheet" href="css/bootstrap.css"/> </head> <body ng-app="DemoApp"> <h3> Guru99 Global Event</h3> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <script src="lib/angular.js"></script> <script src="lib/bootstrap.js"></script> <script src="lib/jquery-1.11.3.min.js"></script> <div ng-app="DemoApp" ng-controller="DemoController"> Tutorial Name :<input type="text" ng-model="tutorialName"><br> <br> This tutorial is {{tutorialName}} </div> <script> var app = angular.module('DemoApp', []); app.controller('DemoController', function($scope) { $scope.tutorialName = "Angular JS"; $scope.tName = function() { return $scope.tName; }; }); </script> </body> </html>
50) 使用 ng-model 编写代码在 AngularJS 中显示多行输入控件。
以下是使用 ng-model 在 AngularJS 中显示多行输入控件的代码:
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> <link rel="stylesheet" href="css/bootstrap.css"/> </head> <body > <h3> Guru99 Global Event</h3> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> <div ng-app="DemoApp" ng-controller="DemoCtrl"> <form> Topic Description:<br> <br> <textarea rows="4" cols="50" ng-model="pDescription"></textarea><br><br> </form> </div> <script> var app = angular.module('DemoApp',[]); app.controller('DemoCtrl', function($scope){ $scope.pDescription="This topic looks at how Angular JS works \nModels in Angular JS"}); </script> </body> </html>
51) 编写代码来演示输入元素的用法。
以下是使用 AngulaJS 输入元素的代码示例:
<!DOCTYPE html> <html> <head> <meta chrset="UTF 8"> <title>Event Registration</title> <link rel="stylesheet" href="css/bootstrap.css"/> <script src="https://code.angularjs.org/1.6.9/angular.js"></script> </head> <body > <h3> Guru99 Global Event</h3> <div ng-app="DemoApp" ng-controller="DemoCtrl"> <form> Topic Description:<br> <br> Name : <input type="text" ng-model="pname"><br> Topic : <br> <input type="checkbox" ng-model="Topic.Controller">Controller<br> <input type="checkbox" ng-model="Topic.Models">Models </form> </div> <script> var app = angular.module('DemoApp',[]); app.controller('DemoCtrl', function($scope){ $scope.pname="Guru99"; $scope.Topic = { Controller:true, Models:false }; }); </script> </body> </html>
52) 如何在 PHP 中创建模型?
以下是使用 PHP 创建模型的代码:
<?php class Opinion_poll_model extends CI_Model { public function __construct() { $this->load->database(); } public function total_votes() { $query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries'); return $query->row()->choices_count; } public function get_results() { $libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow"); $table_rows = ''; for ($i = 1; $i < 5; $i++) { $sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;"; $result = $model-> select($sql_stmt); $table_rows .= "<tr><td>" . $ libraries [$i] . " Got:</td><td><b>" . $result[0] . "</b> votes</td></tr>"; } public function add_vote($choice) { $ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data); } } ?>
53)为什么使用 PHP MVC 框架?
您应该使用 PHP MVC 框架,因为它通过以下方式简化了复杂技术的工作:
- 隐藏所有复杂的实施细节
- 提供我们可以用来构建应用程序的标准方法。
- 提高了开发人员的工作效率,这是因为连接数据库、清理用户输入等活动的基础实现已经部分实现。
- 遵守专业编码标准
54)有哪些流行的 PHP MVC 框架?
以下是流行的 PHP MVC 框架:
CodeIgniter: 它是最流行的 PHP MVC 框架之一。它轻量级且学习曲线短。它拥有一套丰富的库,可帮助快速构建网站和应用程序。对 OOP 编程知识有限的用户也可以使用它。
小花: 它是一个分层模型视图控制器 HMVC,是一个安全且轻量级的框架。它拥有一套丰富的组件,可用于快速开发应用程序。
CakePHP: 它以 Ruby on Rails 为模型。它以软件设计模式、约定优于配置、ActiveRecord 等概念而闻名。
Zend: 它是一个强大的框架;
- 安全、可靠、快速、可扩展
- 支持 Web 2.0 和 Web 服务的创建。
它具有来自以下供应商的 API: Amazon, 谷歌, Flickr、雅虎等,是开发商业应用程序的理想选择。
55) 如何在 PHP 中创建视图?
以下是使用 PHP 创建视图的代码:
opinion_poll_form.php <html> <head> <title> JavaScript Libraries - Opinion Poll </title> </head> <body> <h3>JavaScript Libraries - Opinion Poll</h3> <p><b>What is your favorite JavaScript Library? </b></p> <form method="POST" action="index.php"> <p> <input type="radio" name="vote" value="1" /> JQuery <br /> <input type="radio" name="vote" value="2" /> MooTools <br /> <input type="radio" name="vote" value="3" /> YUI Library <br /> <input type="radio" name="vote" value="4" /> Glow </p> <p> <input type="submit" name="submitbutton" value="OK" /> </p> </form> </body> </html>
现在让我们创建结果页面 results.php
<html> <head> <title>JavaScript Libraries - Opinion Poll Results</title> </head> <body> <h3>JavaScript Libraries - Opinion Poll Results</h3> <p><b>What is your favorite JavaScript Library?</b></p> <p><b><?php echo $total_votes; ?></b> people have thus far taken part in this poll:</p> <p><table><tr><td> <?php print($rows); ?> </tr></td></table></p> <p><a href="#">Return to voting page</a></p> </body> </html>
这些面试问题也会对你的口试有帮助