MVC インタビューのトップ 55 の質問と回答 (PDF)
新人向けの MVC 面接の質問と回答
1) モデル ビュー コントローラーとは何ですか?
MVC は、Web アプリケーションを開発するためのソフトウェア アーキテクチャ パターンです。モデル、ビュー、コントローラーの 3 つのオブジェクトによって処理されます。
👉 無料 PDF ダウンロード: MVC インタビューの質問と回答
2) MVC アプリケーションにおける Model-View-Controller は何を表しますか?
MVC モデルでは、
- モデル– アプリケーション データ ドメインを表します。 言い換えれば、アプリケーションのビジネス ロジックはモデル内に含まれており、データの維持を担当します。
- 表示– エンドユーザーが通信するユーザー インターフェイスを表します。 つまり、すべてのユーザー インターフェイス ロジックは View 内に含まれています。
- コントローラ- ユーザーのアクションに応答するのはコントローラーです。 ユーザーのアクションに基づいて、それぞれのコントローラーがモデル内で応答し、ユーザー インターフェイスを表示するレンダリングするビューを選択します。 ユーザー入力ロジックはコントローラー内に含まれています。
3) MVCを定義するアセンブリに名前を付ける
当学校区の MVCフレームワーク System.Web.Mvc アセンブリで定義されます。
4) コントローラーアクションメソッドのさまざまな戻り値の型は何ですか?
コントローラー アクション メソッドのさまざまな戻り値の型を次に示します。
- 結果を見る
- Javaスクリプト結果
- リダイレクト結果
- JSONの結果
- コンテンツ結果
5) Web フォーム アプリケーションと MVC アプリケーションにルートを追加することの違いは何ですか?
Web フォーム アプリケーションにルートを追加するには、RouteCollection クラスの MapPageRoute() メソッドを使用します。一方、MVC アプリケーションにルートを追加するには、MapRoute() メソッドを使用します。
6) ルートに制約を追加する XNUMX つの方法は何ですか?
ルートに制約を追加するには、次の XNUMX つの方法があります。
- 正規表現を使用する
- IRouteConstraint インターフェイスを実装するオブジェクトを使用する
7) MVC の利点は何ですか?
- MVC はプロジェクトを別のセグメントに分離し、開発者が作業しやすくします。
- プロジェクトの一部を編集または変更するのが簡単なので、プロジェクトの開発コストとメンテナンスコストが削減されます。
- MVC によりプロジェクトがより体系化される
- ビジネス ロジックとプレゼンテーション ロジックを明確に分離します。
- 各 MVC オブジェクトには異なる責任があります
- 並行して開発が進む
- 管理と保守が容易
- すべてのクラスとオブジェクトは互いに独立しています
8) 「beforeFilter()」、「beforeRender」、「afterFilter」関数はコントローラーで何をしますか?
- beforeFilter(): この関数は、コントローラーのすべてのアクションの前に実行されます。 ここは、アクティブなセッションを確認したり、ユーザーの権限を検査したりするのに最適な場所です。
- beforeRender(): この関数は、コントローラーのアクション ロジックの後、ビューがレンダリングされる前に呼び出されます。 この関数はあまり使用されませんが、特定のアクションの終了前に render() を手動で呼び出す場合には必要になる場合があります。
- afterFilter(): この関数は、すべてのコントローラーのアクション後、およびレンダリングの完了後に呼び出されます。 これは、最後に実行されるコントローラー メソッドです。
9) MVC におけるコンポーネントのプレゼンテーション、抽象化、および制御の役割は何ですか?
MVC におけるコンポーネントのプレゼンテーション、抽象化、および制御の役割は次のとおりです。
- プレゼンテーション: アプリケーション内の特定の抽象化を視覚的に表現したものです。
- 抽象化: アプリケーション内のビジネス ドメイン機能です
- コントロール: これは、システム内の他のコントロールと通信することに加えて、システム内の抽象化とユーザーへの表示の間の一貫性を保つコンポーネントです。
10) MVC モデルの欠点は何ですか?
MVC モデルの重要な欠点をいくつか示します。
- モデルパターンは少し複雑です。
- データアクセスの非効率性が目立ちます。
- 最新のユーザー インターフェイスでは、MVC を使用するのは困難です。
- 並行開発には複数のプログラマが必要です。
- 複数のテクノロジーの知識が必要です。
11) MVC における「ActionFilters」の役割は何ですか?
MVC では、「ActionFilters」を使用すると、MVC アクションの実行中または実行中にロジックを実行できます。
12) MVC プロジェクトを実行する手順は何ですか?
MVC プロジェクトを実行する手順には次のものが含まれます。
- アプリケーションの最初のリクエストを受信する
- ルーティングを実行する
- MVCリクエストハンドラーを作成する
- コントローラーの作成
- コントローラの実行
- アクションを呼び出す
- 実行結果
13) ルーティングと XNUMX つのセグメントとは何ですか?
ルーティングは、URL 構造を決定し、URL をコントローラーにマップするのに役立ちます。
ルーティングにとって重要な XNUMX つのセグメントは次のとおりです。
- コントローラ名
- アクションメソッド名
14) MVC パターンではルーティングはどのように行われますか?
RouteCollection と呼ばれるルートのグループがあり、アプリケーションに登録されたルートで構成されます。 RegisterRoutes メソッドは、このコレクションにルートを記録します。 ルートは、URL パターンと、リクエストがパターンに一致する場合に使用するハンドラーを定義します。
MapRoute メソッドの最初のパラメータはルートの名前です。 XNUMX 番目のパラメータは、URL が一致するパターンになります。 XNUMX 番目のパラメータは、プレースホルダが決定されていない場合、デフォルト値になる可能性があります。
15) ハイパーリンクを使用して、あるビューから別のビューに移動するにはどうすればよいですか?
以下のコードに示すように、「ActionLink」メソッドを使用します。 以下のコードは、「Home」コントローラーに移動して「GotoHome」アクションを呼び出すのに役立つ単純な URL を作成します。
コードを折りたたむ/コピーする
<%= Html.ActionLink("Home", "Gotohome") %>
経験者向けの MVC 面接の質問と回答
16) MVC ではセッションはどのように維持されますか?
MVC では、tempdata、viewdata、viewbag の XNUMX つの方法でセッションを維持できます。
17) 一時データ、ビューデータ、ビューバッグの違いは何ですか?
- 温度データ: あるコントローラーから別のコントローラーに切り替えるときにデータを維持するのに役立ちます。
- データの表示: コントローラーからビューに移動するときにデータを維持するのに役立ちます。
- バッグを見る: これはビュー データの動的なラッパーです。
18) MVC の部分ビューとは何ですか?
MVC の部分ビューは、ビュー コンテンツの一部をレンダリングします。 コードの重複を減らすのに役立ちます。 簡単に言えば、部分ビューを使用すると、親ビュー内でビューをレンダリングできます。
19) MVC で Ajax を実装するにはどうすればよいですか?
MVC では、Ajax は XNUMX つの方法で実装できます。
- Ajax ライブラリ
- お酒
20) 「ActionResult」と「ViewResult」の違いは何ですか?
「ActionResult」は抽象クラスですが、「ViewResult」は「AbstractResult」クラスから派生します。 「ActionResult」には、「JsonResult」、「FileStreamResult」、「ViewResult」などの多数の派生クラスがあります。
さまざまなタイプのビューを動的に導出する場合は、「ActionResult」が最適です。
21) MVC で結果を JSON 形式で返すにはどうすればよいですか?
MVC で結果を JSON 形式で返すには、「JSONRESULT」クラスを使用します。
22) ビューと部分ビューの違いは何ですか?
ビューと部分ビューの違いは次のとおりです
表示 | 部分図 |
---|---|
レイアウトページが含まれています | レイアウトページは含まれません |
ビューがレンダリングされる前に、ビューの開始ページがレンダリングされます | 部分ビューでは、viewstart.cshtml が検証されません。 viewStart.cshtml.page 内に部分ビューの共通コードを配置することはできません。 |
ビューには、body、html、head、title、meta などのマークアップ タグが含まれる場合があります。 | 部分ビューはビュー内でレンダリングするように特別に設計されており、そのため、マークアップは構成されていません。 |
ビューは部分ビューと比較して軽量ではありません | 通常のビューを RenderPartial メソッドに渡すことができます。 |
23) MVC の結果の種類は何ですか?
MVC には 11 種類の結果があり、「ActionResult」クラスがメイン クラスであり、XNUMX 種類がそのサブタイプです。
- 結果を表示
- PartialView結果
- 空の結果
- リダイレクト結果
- RedirectToRouteResult
- Json結果
- Javaスクリプト結果
- コンテンツ結果
- ファイルコンテンツ結果
- ファイルストリーム結果
- ファイルパス結果
24) NonActionAttribute の重要性は何ですか?
コントローラー クラスのすべてのパブリック メソッドはアクション メソッドとして扱われます。このデフォルト メソッドを回避したい場合は、パブリック メソッドに NonActionAttribute を割り当てる必要があります。
25) デフォルト ルート {resource}.axd/{*pathinfo} は何に役立ちますか?
デフォルト ルートでは、Webresource.axd や ScriptResource.axd などの Web リソース ファイルに対する要求がコントローラーに渡されるのを防ぎます。
26) 複数のフィルターが実装されている場合、実行されるフィルターの順序は何ですか?
フィルターの順序は次のようになります。
- 承認フィルター
- アクションフィルター
- 応答フィルター
- 例外フィルター
27) 最終的にどの ASP.NET フィルターが実行されますか?
最後に「例外フィルター」が実行されます。
28) Razor ビューのファイル拡張子は何ですか?
Razor ビューの場合、ファイル拡張子は次のとおりです。
- .cshtml: C# がプログラミング言語の場合
- .vbhtml: プログラミング言語が VB の場合
29) ルートに制約を追加する XNUMX つの方法は何ですか?
ルートに制約を追加するには、次の XNUMX つの方法があります。
- 正規表現の使用
- IRouteConstraint インターフェイスを実装するオブジェクトの使用
30) ルーティングが実装されない、または必要とされない XNUMX つの例は何ですか?
ルーティングが必要ない XNUMX つの例は次のとおりです。
- URLパターンに一致する物理ファイルが見つかった場合
- URL パターンのルーティングが無効な場合
5 年の経験を持つ MVC 面接の質問
31) MVC の特徴は何ですか?
MVC の機能は次のとおりです。
- 簡単で摩擦のない試験性。 テスト性、拡張性、プラグイン性に優れたフレームワーク。
- HTML と URL を完全に制御できます
- ASP.NET、JSP、Django などによって提供される既存の機能を活用します。
- ロジックの明確な分離: モデル、ビュー、コントローラー。 ビジネス ロジック、UL ロジック、入力ロジックによるアプリケーション タスクの分離。
- SEO フレンドリーな URL の URL ルーティング。 分かりやすく検索可能な URL のための強力な URL マッピング。
- テスト駆動開発 (TDD) のサポート。
32) MVC の実例は何ですか?
MVC の実際の例を次に示します。
- あなたがレストランに行くと仮定しましょう。 キッチンに行って食事を準備する必要はありませんが、家で確実に行うことができます。 代わりに、そこに行ってウェイターが来るのを待つだけです。
- ウェイターがあなたのところに来て、あなたは食べ物を注文するだけです。 ウェイターはあなたが誰なのか、そしてあなたが何を望んでいるのか知りません、ただあなたの食べ物の注文の詳細を書き留めただけです。
- その後、ウェイターはキッチンに移動します。 キッチンでは、ウェイターが食事を準備するわけではありません。
- コックが料理を準備します。ウェイターにテーブル番号とともに注文が伝えられます。
- 料理人はあなたのために料理を準備します。彼は食材を使って料理をします。あなたが野菜サンドイッチを注文したとしましょう。次に、パン、トマト、ジャガイモ、ピーマン、玉ねぎ、ビット、チーズなどが必要で、これらは冷蔵庫から取り出されます。
- クックは最終的にウェイターに食べ物を渡します。 この食べ物をキッチンの外に移動するのはウェイターの仕事です。
- これで、ウェイターはあなたが注文した食べ物とそれがどのように提供されるかを把握します。
この場合、
View= You Waiter= Controller Cook= Model Refrigerator= Data
33) 3 層の違いは何ですか ArchiテクチャとMVC Archi構造?
3段の違いはここです ArchiテクチャとMVC Archi構造:
3層 Archi構造 | MVC Archi構造 | |
---|---|---|
コミュニケーション | このタイプのアーキテクチャ パターンは、データ層と直接通信することはありません。 | すべての層は、トライアングル トポロジを使用して直接通信します。 |
使用法 | 3 層: クライアント、データ層、ミドルウェアが物理的に別個のプラットフォームで実行される Web アプリケーションで広く使用されています。 | 通常、単一のグラフィカル ワークステーション上で実行されるアプリケーションで使用されます。 |
34) JSP で MVC アーキテクチャを使用するにはどうすればよいですか?
次の例は、JSP での MVC アーキテクチャの使用を示しています。
- ここでは、ビュー レイヤーである 2 つの変数「email」と「password」を持つフォームを例に説明します。
- ユーザーが電子メールとパスワードを入力して送信をクリックすると、電子メールとパスワードが渡される mvc_servlet にアクションが渡されます。
- この mvc_servlet はコントローラー層です。 ここの mvc_servlet では、リクエストはモデル層として機能する Bean オブジェクトに送信されます。
- 電子メールとパスワードの値は Bean に設定され、今後の目的のために保存されます。
- Bean から値がフェッチされ、ビュー層に表示されます。
Mvc_example.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); } }
テストビーン.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) Spring では MVC はどのように動作しますか?
Spring での MVC の仕組みは次のとおりです。
- DispatcherServlet がリクエストを受け取ります。
- その後、DispatcherServlet は HandlerMapping と通信します。 また、その特定のリクエストに関連付けられたコントローラーも取り消します。
- コントローラーはサービス メソッドを呼び出すことによってこのリクエストを処理し、ModelAndView オブジェクトが DispatcherServlet によって返されます。
- ビュー名は ViewResolver に送信され、呼び出す実際の View が検索されます。
- その後、DispatcherServlet が View に渡されて結果が表示されます。
- モデル データを使用することにより、ビューはレンダリングし、結果をユーザーに送り返します。
36) MVC アプリケーションを作成する際に覚えておくべき重要な点は何ですか?
MVC アプリケーションを作成する際に覚えておくべき重要な点がいくつかあります。
- ASP.net MVC は ASP.Net Web フォームベースのアプリケーションの代替ではないことに注意する必要があります。
- MVC アプリ開発のアプローチは、特定の開発ニーズに合わせて、ASP.net MVC が提供するアプリケーション要件と機能に基づいて決定する必要があります。
- ASP.NET MVC を使用したアプリケーション開発プロセスは、Web フォームベースのアプリケーションに比べて複雑です。
- アプリケーションの保守性は、アプリケーションのタスクを分離することで常に向上します。
37) Web フォームと MVC の違いは何ですか?
Web フォームと MVC の違いは次のとおりです。
技術パラメータ | Webフォーム | MVC |
---|---|---|
モデル | Asp.Net Web フォームは、イベント駆動型開発モデルに従います。 | Asp.Net MVC は、MVC パターンベースの開発モデルを使用します。 |
以来使用 | 2002年から存在 | 2009年に初めて発売されました |
ビューステートのサポート | Asp.Net Web フォームは、クライアント側での状態管理のためのビューステートをサポートしています。 | .Net MVC はビューステートをサポートしていません。 |
URLの種類 | Asp.Net Web フォームにはファイルベースの 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 が必要です。 | 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 のモデル、ビュー、コントローラーを示すコードです。
アプリケーション/コントローラーにある 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; } }
次の場所にある welcome_message.php を開きます。
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 アクションのエイリアス名を割り当てるにはどうすればよいですか?
以下のように「ActionName」属性を使用することで、ASP.NET MVCの場合と同様にWeb APIアクションにエイリアス名を付けることができます。
[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 |
---|---|
コントローラーはアプリケーションへのエントリーポイントです。 | ビューはアプリケーションへのエントリ ポイントです。 |
コントローラーとビューの間の XNUMX 対多の関係。 | ビューとビューモデルの間の XNUMX 対多の関係。 |
ビューにはコントローラーへの参照がありません | ビューには、ビューモデルへの参照があります。 |
MVCは古いモデルです | MVVM は比較的新しいモデルです。 |
このモデルの読み取り、変更、単体テスト、再利用が難しい | データ バインディングが複雑な場合、デバッグ プロセスは複雑になります。 |
MVC モデル コンポーネントはユーザーとは別にテスト可能 | 個別の単体テストが容易で、コードはイベント駆動型です。 |
45) AngularJS の MVC とは何ですか?
Angular.js は MVC アーキテクチャに従っており、MVC フレームワークの図を以下に示します。
- コントローラーはビジネス ロジックを持つレイヤーを表します。 ユーザー イベントは、コントローラー内に保存されている関数をトリガーします。 ユーザー イベントはコントローラーの一部です。
- ビューは、エンドユーザーに提供されるプレゼンテーション層を表すために使用されます。
- モデルはデータを表すために使用されます。モデル内のデータは、プリミティブ宣言のみを持つシンプルなものにすることができます。たとえば、学生向けアプリケーションを管理している場合、データ モデルには学生 ID と名前のみを含めることができます。または、構造化データ モデルを使用して複雑にすることもできます。自動車所有アプリケーションを管理している場合、エンジン容量、座席数などの観点から車両自体を定義する構造を持つことができます。
46) AngularJS における MVC の役割は何ですか?
以下は、AngularJS コントローラーの動作の簡単な定義です。
- コントローラーの主な役割は、ビューに渡されるデータを制御することです。 スコープとビューは双方向通信を行います。
- ビューのプロパティはスコープ上の「関数」を呼び出すことができます。 さらに、ビュー上のイベントはスコープ上の「メソッド」を呼び出すことができます。 以下のコード スニペットは、関数の簡単な例を示しています。
- コントローラーを定義するときに定義される関数 ($scope) と、$scope.firstName と $scope.lastName の連結を返すために使用される内部関数。
- AngularJS では、関数を変数として定義すると、それはメソッドと呼ばれます。
- この方法でデータはコントローラーからスコープに渡され、その後データはスコープからビューに行き来します。
- スコープはモデルをビューに公開するために使用されます。 モデルはスコープ内で定義されたメソッドを介して変更でき、ビューからのイベントを介してトリガーできます。 スコープからモデルへの双方向のモデル バインディングを定義できます。
- 理想的には、コントローラーは DOM を操作するために使用すべきではありません。これは、後で説明するディレクティブによって実行される必要があります。
- ベスト プラクティスは、機能に基づいてコントローラーを用意することです。 たとえば、入力用のフォームがあり、そのためのコントローラーが必要な場合は、「フォーム コントローラー」というコントローラーを作成します。
47) AngularJS で基本的なコントローラーを構築する方法
以下のコードスニペットは、「イベント登録」というタイトルを持ち、次のような重要なライブラリへの参照を持つシンプルなHTMLページです。 Bootstrap、jQuery、および Angular。
- ブートストラップ CSS スタイルシートへの参照を追加しています。これはブートストラップ ライブラリと組み合わせて使用されます。
- AngularJS ライブラリへの参照を追加しています。 したがって、今後 angular.js を使用して行うことはすべて、このライブラリから参照されることになります。
- Web ページの特定のコントロールに対する応答性を高めるために、ブートストラップ ライブラリへの参照を追加しています。
- DOM 操作に使用される jquery ライブラリへの参照を追加しました。 Angular の機能の一部はこのライブラリに依存しているため、これは Angular で必要です。
デフォルトでは、上記のコード スニペットはすべての例に含まれるため、後続のセクションでは特定の angularJS コードのみを示すことができます。
次に、コースで開始するファイルとファイル構造を見てみましょう。
- まず、従来の Web アプリケーションと同様に、ファイルを 2 つのフォルダーに分離します。 「CSS」フォルダーがあります。 これにはすべてのカスケード スタイル シート ファイルが含まれ、さらに「lib」フォルダーができます。 Javaスクリプト ファイル。
- bootstrap.css ファイルは CSS フォルダーに配置され、Web サイトに優れた外観と操作性を追加するために使用されます。
- 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 コントローラーでメソッドを定義するコードを記述しますか?
AngularJS コントローラーでメソッドを定義するコードは次のとおりです。
<!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 フレームワークは次のとおりです。
コードイグナイター: これは、最も人気のある PHP MVC フレームワークの XNUMX つです。 軽量で、習得までの時間が短いです。 Web サイトやアプリケーションを迅速に構築するのに役立つライブラリが豊富に揃っています。 OOP プログラミングの知識が限られているユーザーも使用できます。
コハナ: これは、安全で軽量なフレームワークである階層型モデル ビュー コントローラー HMVC です。アプリケーションを迅速に開発するための豊富なコンポーネント セットを備えています。
CakePHP: これは Ruby on Rails をモデルにしています。ソフトウェア設計パターン、設定より規約、ActiveRecord などの概念で知られています。
Zend: これは強力なフレームワークです。
- 安全、信頼性、高速、スケーラブル
- Web 2.0 と Web サービスの作成をサポートします。
次のようなベンダーの API を備えています。 Amazonグーグル Flickr、Yahoo などのビジネス アプリケーションの開発に最適です。
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>
これらの面接の質問は、あなたの活力(口頭)にも役立ちます