Az 55 legnépszerűbb MVC interjúkérdés és válasz (PDF)
MVC interjúkérdések és válaszok a frisseseknek
1) Mi az a Model-View-Controller?
Az MVC egy szoftverarchitektúra-minta fejlesztéshezping webes alkalmazások. Három objektum kezeli: Modell, Nézet és Vezérlő.
👉 Ingyenes PDF letöltés: MVC interjúkérdések és válaszok
2) Mit jelent a Model-View-Controller egy MVC alkalmazásban?
Az MVC modellben
- Modell– Az alkalmazás adattartományát képviseli. Más szóval, egy alkalmazás üzleti logikáját a modell tartalmazza, és az adatok karbantartásáért felelős.
- Kilátás– Azt a felhasználói felületet jelenti, amellyel a végfelhasználók kommunikálnak. Röviden, az összes felhasználói felület logikáját a View tartalmazza.
- Vezérlő- A vezérlő válaszol a felhasználó műveleteire. A felhasználói műveletek alapján a megfelelő vezérlő válaszol a modellen belül, és kiválaszt egy olyan nézetet, amely megjeleníti a felhasználói felületet. A felhasználói beviteli logika a vezérlőben található.
3) Nevezze el az összeállítást az MVC meghatározásához
Az MVC keretrendszer a System.Web.Mvc összeállításban van megadva.
4) Melyek a vezérlő műveleti metódusának különböző visszatérési típusai?
Íme a vezérlő műveleti metódusainak különböző visszatérési típusai:
- Eredmény megtekintése
- JavaSzkript eredménye
- Átirányítási eredmény
- JSON eredmény
- Tartalom Eredmény
5) Mi a különbség az útvonalak webűrlap-alkalmazásokhoz és MVC-alkalmazásokhoz való hozzáadása között?
Útvonalak webűrlap-alkalmazásokhoz való hozzáadásához a RouteCollection osztály MapPageRoute() metódusát, míg MVC alkalmazáshoz való útvonalak hozzáadásához a MapRoute() metódust használjuk.
6) Mi a két módja annak, hogy megszorításokat adjunk egy útvonalhoz?
A két módszer arra, hogy megszorításokat adjon egy útvonalhoz
- Használjon reguláris kifejezéseket
- Használjon olyan objektumot, amely megvalósítja az IRouteConstraint interfészt
7) Mik az MVC előnyei?
- Az MVC egy másik szegmensre osztja szét a projektet, és a fejlesztők könnyebben dolgozhatnak rajta
- Könnyen szerkeszthető vagy módosítható a projekt egyes részei, amelyek csökkentik a projekt fejlesztési és karbantartási költségeit
- Az MVC rendszeresebbé teszi a projektjét
- Ez egyértelmű elválasztást jelent az üzleti logika és a prezentációs logika között
- Minden MVC objektumnak más-más felelőssége van
- A fejlesztés párhuzamosan halad
- Könnyen kezelhető és karbantartható
- Minden osztály és objektum független egymástól
8) Mit csinálnak a „beforeFilter()”, „beforeRender” és „afterFilter” függvények a Controllerben?
- beforeFilter(): Ez a funkció a vezérlő minden művelete előtt lefut. Ez a megfelelő hely az aktív munkamenetek ellenőrzésére vagy a felhasználói engedélyek ellenőrzésére.
- beforeRender(): Ezt a függvényt a vezérlő műveleti logikája után hívják meg, de a nézet megjelenítése előtt. Ezt a függvényt nem gyakran használják, de szükség lehet rá, ha manuálisan hívja meg a render() függvényt egy adott művelet vége előtt.
- afterFilter(): Ez a függvény minden vezérlőművelet után és a renderelés után meghívásra kerül. Ez az utolsó futtatható vezérlő módszer.
9) Mi a szerepe az alkatrészeknek? Prezentáció, hasizomtracció és vezérlés MVC-ben?
Íme a komponensek szerepe: Bemutató, Hasizmoktracció és vezérlés MVC-ben:
- Bemutatkozás: Ez egy adott hasizmok vizuális ábrázolása.tracció az alkalmazáson belül
- Abstracmegad: Ez az alkalmazáson belüli üzleti tartomány funkciója
- Ellenőrzés: Ez egy olyan összetevő, amely fenntartja az összhangot a hasizmok között.traca rendszeren belüli műveletek és azok felhasználónak való megjelenítése, valamint a rendszeren belüli egyéb vezérlőkkel való kommunikáció.
10) Melyek az MVC modell hátrányai?
Íme néhány fontos hátránya az MVC modellnek:
- A modell mintája kissé összetett.
- Az adatokhoz való hozzáférés hatékonyságának hiánya látható.
- A modern felhasználói felülettel nehézkes az MVC használata.
- A párhuzamos fejlesztéshez több programozóra van szükség.
- Több technológiai ismeret szükséges.
11) Mi a szerepe az „ActionFilters”-nek az MVC-ben?
Az MVC-ben az „ActionFilters” segít a logika végrehajtásában, miközben az MVC-művelet végrehajtásra kerül, vagy éppen végrehajtás alatt áll.
12) Mik a lépései egy MVC projekt végrehajtásának?
Az MVC projekt végrehajtásának lépései a következőket tartalmazzák:
- Fogadja meg az első pályázati kérelmet
- Végezze el az útválasztást
- Hozzon létre egy MVC kéréskezelőt
- Vezérlő létrehozása
- Vezérlő végrehajtása
- Cselekvés előhívása
- Eredmény végrehajtása
13) Mi az útválasztás és a három szegmens?
Az útvonaltervezés segít eldönteni, hogy URL strukturálja és térképezze fel a URL a Vezérlővel.
Az útválasztáshoz fontos három szegmens:
- ControllerName
- ActionMethodName
- Vizsgált paraméter
14) Hogyan történik az útválasztás az MVC mintában?
Létezik egy útvonalcsoport, az úgynevezett RouteCollection, amely az alkalmazásban regisztrált útvonalakból áll. A RegisterRoutes metódus rögzíti az útvonalakat ebben a gyűjteményben. Egy útvonal egy URL minta és egy kezelő, amelyet akkor kell használni, ha a kérés illeszkedik a mintához.
A MapRoute metódus első paramétere az útvonal neve. A második paraméter az a minta lesz, amelyhez a URL egyezések. A harmadik paraméter lehet a helyőrzők alapértelmezett értéke, ha azok nincsenek meghatározva.
15) Hogyan navigálhat az egyik nézetből a másik nézetbe hiperhivatkozás segítségével?
Az alábbi kódban látható „ActionLink” metódus használatával. Az alábbi kód egy egyszerű URL amely segít a „Home” vezérlőhöz navigálni és a „GotoHome” műveletet elindítani.
Összecsukás / Másolás Code
<%= Html.ActionLink("Home", "Gotohome") %>
MVC interjú kérdések és válaszok tapasztaltaknak
16) Hogyan tartják fenn a munkameneteket az MVC-ben?
A munkamenetek háromféleképpen tarthatók fenn az MVC-ben: tempdata, viewdata és viewbag.
17) Mi a különbség a Temp Data, View Data és View Bag között?
- Hőmérsékleti adatok: Segít megőrizni az adatokat, amikor egyik vezérlőről a másikra vált.
- Adatok megtekintése: Segít megőrizni az adatokat, amikor vezérlőről nézetre vált.
- Táska megtekintése: Ez egy dinamikus burkoló a nézetadatok körül.
18) Mi az a részleges nézet az MVC-ben?
Az MVC részleges nézete megjeleníti a nézeti tartalom egy részét. Hasznos a kódduplikáció csökkentésében. Egyszerűen fogalmazva, a részleges nézet lehetővé teszi egy nézet megjelenítését a szülőnézeten belül.
19) Hogyan implementálható az Ajax az MVC-ben?
Az MVC-ben az Ajax kétféleképpen valósítható meg
- Ajax könyvtárak
- jquery
20) Mi a különbség az „ActionResult” és a „ViewResult” között?
Az „ActionResult” egy hasizmot jelent.tract osztály, míg a „ViewResult” az „Abs”-ból származiktrac„tResult” osztály. Az „ActionResult” számos származtatott osztállyal rendelkezik, mint például a „JsonResult”, a „FileStreamResult” és a „ViewResult”.
Az „ActionResult” a legjobb, ha dinamikusan származtatja a különböző típusú nézeteket.
21) Hogyan küldheti vissza az eredményt JSON formátumban MVC-ben?
Ha az eredményt JSON formátumban szeretné visszaküldeni MVC-ben, használhatja a „JSONRESULT” osztályt.
22) Mi a különbség a Nézet és a Részleges nézet között?
Itt van a különbség a nézet és a részleges nézet között
| Kilátás | Részleges nézet |
|---|---|
| Ez tartalmazza az elrendezési oldalt | Nem tartalmazza az elrendezési oldalt |
| Bármely nézet megjelenítése előtt a nézet kezdőoldala megjelenik | A viewtart.cshtml esetén a részleges nézet nem érvényes. Nem tudunk közös kódot elhelyezni a viewStart.cshtml.page részleges nézetéhez |
| A nézet tartalmazhat jelölőcímkéket, például body, html, head, title, meta stb. | A részleges nézet kifejezetten a nézeten belüli megjelenítésre készült, és éppen ezért nem tartalmaz semmilyen jelölést |
| A nézet nem könnyű a részleges nézethez képest | A RenderPartial metódusnak átadhatunk egy szabályos nézetet |
23) Milyen típusú eredmények vannak az MVC-ben?
Az MVC-ben tizenkét típusú eredmény létezik, ahol az „ActionResult” osztály a fő osztály, míg a 11 az altípusuk:
- Eredmény megtekintése
- PartialViewResult
- EmptyResult
- RedirectResult
- RedirectToRouteResult
- JsonResult
- JavaScriptResult
- Tartalom Eredmény
- FileContentResult
- FileStreamResult
- FilePathResult
24) Mi a NonActionAttribute jelentősége?
A vezérlőosztály összes nyilvános metódusa műveleti metódusként kezelendő, ha meg akarja akadályozni ezt az alapértelmezett metódust, akkor a nyilvános metódust NonActionAttribute-val kell hozzárendelnie.
25) Mire használható az alapértelmezett {resource}.axd/{*pathinfo} útvonal?
Az alapértelmezett útvonal megakadályozza, hogy a webes erőforrás-fájlok, például a Webresource.axd vagy a ScriptResource.axd kérések átadásra kerüljenek a vezérlőnek.
26) Milyen sorrendben kerülnek végrehajtásra a szűrők, ha több szűrőt implementálunk?
A szűrő sorrendje a következő lenne:
- Engedélyezési szűrők
- Akciószűrők
- Válaszszűrők
- Kivételszűrők
27) Milyen ASP.NET szűrőket hajtanak végre a végén?
A végén a „Kivételszűrők” végrehajtásra kerülnek.
28) Melyek a borotvanézetek fájlkiterjesztései?
A borotvanézeteknél a fájlkiterjesztések a következők
- .cshtml: Ha a C# a programozási nyelv
- .vbhtml: Ha a VB a programozási nyelv
29) Mi a két módja annak, hogy megszorításokat adjunk egy útvonalhoz?
A korlátozások útvonalhoz való hozzáadásának két módja a következő:
- Reguláris kifejezések használata
- Olyan objektum használata, amely megvalósítja az IRouteConstraint interfészt
30) Mi az a két eset, amikor az útválasztás nincs megvalósítva vagy nem szükséges?
Két olyan eset van, amikor nincs szükség útválasztásra
- Amikor találnak egy fizikai fájlt, amely megegyezik a URL minta
- Amikor az útvonalválasztás le van tiltva egy URL minta
MVC interjúkérdések 5 éves tapasztalattal
31) Mik az MVC jellemzői?
Íme az MVC jellemzői:
- Könnyű és súrlódásmentes tesztelhetőség. Kiválóan tesztelhető, bővíthető és csatlakoztatható keretrendszer.
- Teljes kontrollt biztosít a HTML-kód és a URLs
- Kihasználja az ASP.NET, JSP, Django stb. által biztosított meglévő szolgáltatásokat.
- A logika egyértelmű szétválasztása: Modell, Nézet, Vezérlő. Alkalmazási feladatok szétválasztása üzleti logikán, Ul logikán és bemeneti logikán keresztül.
- URL SEO-barát útvonaltervezés URLs. Erőteljes URL- térképping érthető és kereshető legyen URLs.
- A tesztvezérelt fejlesztés (TDD) támogatása.
32) Melyek az MVC valós példái?
Íme egy valós példa az MVC-re:
- Tegyük fel, hogy egy étterembe mész. Nem fogsz kimenni a konyhába és ételt készíteni, amit otthonodban biztosan megtehetsz. Ehelyett csak odamész, és megvárod, amíg a pincér bejön.
- Most jön hozzád a pincér, és csak megrendeled az ételt. A pincér nem tudja, ki vagy és mit akarsz, csak felírta az ételrendelésed részleteit.
- Ezután a pincér a konyhába megy. A konyhában a pincér nem készíti el az ételt.
- A szakács elkészíti az ételt. A pincér megkapja megrendelését az asztalszámmal együtt.
- A Cook majd ételt készít Önnek. Az ételek elkészítéséhez alapanyagokat használ. Tegyük fel, hogy zöldséges szendvicset rendelt. Aztán kell neki kenyér, paradicsom, burgonya, paprika, hagyma, falat, sajt stb., ami a hűtőből származik
- Szakács végül átadja az ételt a pincérnek. Most a pincér feladata, hogy ezt az ételt a konyhán kívülre vigye.
- Most a pincér tudja, melyik ételt rendelte, és hogyan szolgálják fel.
Ebben az esetben,
View= You Waiter= Controller Cook= Model Refrigerator= Data
33) Mi a különbség a 3 szint között? Architecture és MVC Architectúra?
Itt van a különbség a 3 szint között Architecture és MVC Architectúra:
| Vizsgált paraméter | 3-rétegű Architectúra | MVC Architectúra |
|---|---|---|
| Kommunikáció | Az ilyen típusú architektúra-minta soha nem kommunikál közvetlenül az adatréteggel. | Minden réteg közvetlenül kommunikál a háromszög topológiával. |
| Használat | 3-szintű: széles körben használják webes alkalmazásokban, ahol az ügyfél, az adatrétegek és a köztes szoftver fizikailag különálló platformokon fut. | Általában olyan alkalmazásoknál használják, amelyek egyetlen grafikus munkaállomáson futnak. |
34) Hogyan használhatja az MVC architektúrát a JSP-ben?
A következő példa az MVC architektúra használatát mutatja be a JSP-ben:
- Vegyünk egy példát egy űrlapra, amely két változót tartalmaz, az „e-mail” és a „password” nézeti réteget.
- Miután a felhasználó megadja az e-mail címet és a jelszót, és rákattint a küldés gombra, a műveletet az mvc_servlet adja át, ahol az e-mail és a jelszó átadásra kerül.
- Ez az mvc_servlet egy vezérlőréteg. Itt az mvc_servletben a kérés a komponens objektumnak kerül elküldésre, amely modellrétegként működik.
- Az e-mail és a jelszó értékeket a program beállítja, és további célokra tárolja.
- A komponensből a rendszer lekéri az értéket, és megjelenik a nézeti rétegben.
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);
}
}
TestBean.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) Hogyan működik az MVC tavasszal?
Így működik az MVC tavasszal:
- A DispatcherServlet kérést kap.
- Ezután a DispatcherServlet kommunikál a HandlerMap-pel.ping. Visszavonja az adott kéréshez társított vezérlőt is.
- A vezérlő a szolgáltatási metódusok meghívásával dolgozza fel ezt a kérést, és a DispatcherServlet egy ModelAndView objektumot ad vissza.
- A nézet neve elküldésre kerül egy ViewResolvernek, hogy megtalálja a tényleges meghívandó nézetet.
- Ezt követően a DispatcherServlet átadásra kerül a View-nak az eredmény megjelenítéséhez.
- A modelladatok felhasználásával a Nézet megjeleníti és visszaküldi az eredményt a felhasználónak.
36) Melyek azok a fontos szempontok, amelyeket érdemes megjegyezni egy MVC-alkalmazás létrehozásakor?
Íme néhány fontos szempont, amelyet emlékezni kell egy MVC-alkalmazás létrehozásakor:
- Ne feledje, hogy az ASP.net MVC nem helyettesíti az ASP.Net webes űrlap alapú alkalmazásokat
- Az MVC-alkalmazások fejlesztésének megközelítését az ASP.net MVC által biztosított alkalmazáskövetelmények és -szolgáltatások alapján kell eldönteni, hogy megfeleljen az adott fejlesztési igényeknek.
- Az ASP.NET MVC alkalmazásfejlesztési folyamata összetettebb a webes űrlap alapú alkalmazásokhoz képest.
- Az alkalmazások karbantarthatósága mindig magasabb az alkalmazási feladatok szétválasztásával.
37) Mi a különbség a Web Forms és az MVC között?
Itt van a különbség a Web Forms és az MVC között:
| paraméterek | Webes űrlapok | MVC |
|---|---|---|
| Modell | Az Asp.Net Web Forms eseményvezérelt fejlesztési modellt követ. | Az Asp.Net MVC MVC minta alapú fejlesztési modellt használ. |
| óta használt | 2002 óta létezik | Először 2009-ben adták ki |
| Nézet állapot támogatása | Az Asp.Net Web Forms támogatja a nézet állapotát az állapotkezeléshez az ügyféloldalon. | A .Net MVC nem támogatja a nézet állapotát. |
| URL típus | Az Asp.Net Web Forms fájlalapú URLs. Ez azt jelenti, hogy a fájlnév létezik a URLs, és fizikailag létezniük kell. | Az Asp.Net MVC útvonal-alapú URLez azt jelenti, hogy URLaz ok átirányításra kerülnek a vezérlőkhöz és a műveletekhez. |
| Szintaxis | Az Asp.Net MVC a webes űrlapok szintaxisát követi. | Az Asp.Net MVC a testreszabható szintaxist követi. |
| Nézet típusa | A webes űrlapok nézetek szorosan kapcsolódnak a Code mögött (ASPX-CS), azaz logika. | Az MVC-nézeteket és a logikát mindig külön tároljuk. |
| Következetes megjelenés és érzés | Az egységes megjelenés érdekében mesteroldalakkal rendelkezik. | Az Asp.Net MVC elrendezésekkel rendelkezik a következetes megjelenés érdekében. |
| Code Reus képesség | A Web Forms felhasználói vezérlőket kínál a kód újrafelhasználásához. | Az Asp.Net MVC részleges nézeteket kínál a kód újrafelhasználásához. |
| A HTML vezérlése | Less a renderelt HTML vezérlése. | Teljes ellenőrzés a HTML felett |
| Állami irányítás | A vezérlők automatikus állapotkezelése. | Kézi állapotkezelés. |
| TDD támogatás | Gyenge vagy egyéni TDD szükséges. | Bátorítja és magában foglalja a TDD-t! |
38) Hogyan lehet valamit megjeleníteni? CodeGyújtó?
Itt egy kód, amivel meg lehet jeleníteni valamit CodeGyújtó:
<?=$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) Írj egy kódot a Modell, Nézet és Vezérlő bemutatására CodeGyújtó.
Itt egy kód a Model, View és Controller bemutatására CodeGyújtó:
Nyissa meg a Welcome.php vezérlővel rendelkező alkalmazást/vezérlőket:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function index()
{
$this->load->view('welcome_message');
}
}
Frissítse az indexet az alábbiak szerint:
public function index()
{
$this->load->model('customers_model');
$data['customer'] = $this->customers_model->get_customer(3);
$this->load->view('welcome_message',$data);
}
Írja be a következő kódot a customer_model.php fájlba az Application/models mappába.
<?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;
}
}
Nyissa meg a welcome_message.php-t a következő helyen:
application/views/welcome_message.php
Cserélje ki a kódot a következőre
<!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) Létrehozhat webalkalmazást webűrlapokkal és MVC-vel is?
Igen. Hibrid alkalmazás létrehozásához az alábbi MVC összeállítási hivatkozásokat kell tartalmaznia a webes űrlapok alkalmazásában.
System.Web.Mvc System.Web.Razor System.ComponentModel.DataAnnotations
41) Hogyan rendelhet álnevet az ASP.NET Web API-művelethez?
A Web API műveletnek ugyanazt az álnevet adhatjuk, mint az ASP.NET MVC esetében, az „ActionName” attribútum használatával a következőképpen:
[HttpPost]
[ActionName("SaveStudentInfo")]
public void UpdateStudent(Student aStudent)
{
StudentRepository.AddStudent(aStudent);
}
42) Mi a fő különbség az MVC és a WebAPI között?
Íme a fő különbség az MVC és a WebAPI között:
Az MVC keretrendszert fejlesztésre használjákping olyan alkalmazások, amelyek rendelkeznek felhasználói felülettel. Ehhez a nézetek használhatók felhasználói felület felépítésére.
A WebAPI-t fejlesztésre használjákping HTTP szolgáltatások. Más alkalmazásokat WebAPI metódusoknak is nevezhetünk az adatok lekérésére.
43) Hogyan biztosíthatja, hogy a Web API csak JSON-adatokat adjon vissza?
Annak érdekében, hogy a Web API sorosítsa a visszatérő objektumot JSON formátumba, és csak JSON adatokat adjon vissza. Ehhez hozzá kell adnia a következő kódot a WebApiConfig.cs osztályhoz bármely MVC Web API projektben:
//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) Mi a különbség az MVVM és az MVC között?
Íme a fontos különbségek az MVVM és az MVC között:
| MVC | MVVM |
|---|---|
| A vezérlő az alkalmazás belépési pontja. | A Nézet az alkalmazás belépési pontja. |
| Egy vagy több kapcsolat a Controller és a View között. | Egy vagy több kapcsolat a View & View Model között. |
| A nézet nem hivatkozik a vezérlőre | A nézet hivatkozásokat tartalmaz a View-Modelre. |
| Az MVC régi modell | Az MVVM egy viszonylag új modell. |
| Nehéz elolvasni, megváltoztatni, tesztelni és újrafelhasználni ezt a modellt | A hibakeresési folyamat bonyolult lesz, ha összetett adatkötésekkel rendelkezünk. |
| Az MVC Model komponens a felhasználótól függetlenül tesztelhető | A különálló egység tesztelése egyszerű, és a kód eseményvezérelt. |
45) Mi az MVC az AngularJS-ben?
Az Angular.js az MVC architektúrát követi, az MVC keretrendszer diagramja alább látható.
- A Controller az üzleti logikával rendelkező réteget képviseli. A felhasználói események aktiválják a vezérlőben tárolt funkciókat. A felhasználói események a vezérlő részét képezik.
- A nézetek a végfelhasználók számára biztosított prezentációs réteg megjelenítésére szolgálnak.
- Az adatok megjelenítésére modelleket használnak. A modellben lévő adatok olyan egyszerűek lehetnek, mintha csak primitív deklarációkkal rendelkeznének. Például, ha diákalkalmazást tart fenn, az adatmodellnek csak egy diákigazolványa és egy név lehet. Vagy összetett is lehet, ha strukturált adatmodellel rendelkezik. Ha autótulajdonosi kérelmet tart karban, rendelkezhet olyan struktúrákkal, amelyek meghatározhatják magát a járművet a motortérfogat, az üléskapacitás stb.
46) Mi a szerepe az MVC-nek az AngularJS-ben?
Az alábbiakban az AngularJS Controller működésének egyszerű definíciója látható.
- Az adatkezelő elsődleges felelőssége a nézetbe továbbított adatok ellenőrzése. A hatókör és a nézet kétirányú kommunikációt folytat.
- A nézet tulajdonságai „függvényeket” hívhatnak a hatókörön. Sőt, a nézetben lévő események „módszereket” hívhatnak a hatókörön. Az alábbi kódrészlet egy egyszerű példát ad egy függvényre.
- A függvény ($scope), amely a vezérlő és egy belső függvény meghatározásakor kerül meghatározásra, amely a $scope.firstName és a $scope.lastName összefűzését adja vissza.
- Az AngularJS-ben, amikor egy függvényt változóként definiál, azt Methodnak nevezik.
- Az adatok így az adatkezelőtől a hatókörbe, majd a hatókörből oda-vissza a nézetbe kerülnek.
- A hatókör a modell megjelenítésére szolgál. A modell a hatókörben definiált metódusokkal módosítható, amelyek a nézetből származó eseményeken keresztül válthatók ki. Kétirányú modellkötést tudunk definiálni a hatókörtől a modellig.
- A vezérlőket ideális esetben nem szabad a DOM manipulálására használni. Ezt az irányelveknek kell megtenniük, amelyeket a későbbiekben látni fogunk.
- A legjobb gyakorlat a funkcionalitáson alapuló vezérlők alkalmazása. Például, ha van egy űrlapja a bevitelhez, és ehhez vezérlőre van szüksége, hozzon létre egy „űrlapvezérlő” nevű vezérlőt.
47) Hogyan készítsünk egy alapvezérlőt az AngularJS-ben
Az alábbi kódrészlet egy egyszerű HTML-oldal, amelynek a címe „Esemény regisztráció”, és hivatkozásokat tartalmaz olyan fontos könyvtárakra, mint pl. Bootstrap, jquery és Angular.
- Hivatkozásokat adunk hozzá a rendszerindító CSS stíluslapokhoz, amelyeket a rendszerindító könyvtárakkal együtt használunk.
- Hivatkozásokat adunk az AngularJS könyvtárakra. Tehát most bármit is teszünk az angular.js-szal, az ebből a könyvtárból fog hivatkozni.
- Hivatkozásokat adunk hozzá a bootstrap könyvtárhoz, hogy weboldalunk jobban reagáljon bizonyos vezérlőelemekre.
- Hivatkozásokat adtunk hozzá a jquery könyvtárakra, amelyeket a DOM-manipulációhoz használunk. Erre azért van szükség az Angular számára, mert az Angular bizonyos funkciói ettől a könyvtártól függenek.
Alapértelmezés szerint a fenti kódrészlet minden példánkban jelen lesz, így a következő szakaszokban csak az adott angularJS kódot tudjuk megjeleníteni.
Másodszor, nézzük meg a fájljainkat és a fájlszerkezetünket, amelyet a tanfolyamunkkal kezdünk:
- Először is 2 mappába különítjük el fájljainkat, ahogyan azt bármely hagyományos webalkalmazásnál teszik. Megvan a „CSS” mappa. Ez tartalmazza majd az összes lépcsőzetes stíluslap fájlunkat, majd meglesz a „lib” mappánk, amelyben az összes JavaForgatókönyv fájlokat.
- A bootstrap.css fájl a CSS mappába kerül, és arra szolgál, hogy webhelyünk megjelenését és hangulatát kölcsönözze.
- Az angular.js a fő fájlunk, amelyet az angularJS webhelyről töltöttünk le, és a lib mappánkban tároltuk.
- Az app.js fájl tartalmazza a vezérlők kódját.
- A bootstrap.js fájl kiegészíti a bootstrap.cs fájlt, hogy bootstrap funkciót adjon webalkalmazásunkhoz.
- A jquery fájlt arra használjuk, hogy DOM-manipulációs funkciókat adjunk webhelyünkhöz.
Példa az angular.js használatára:
Itt csak annyit szeretnénk tenni, hogy az „AngularJS” szavakat szöveges formátumban és szövegmezőben is megjelenítsük, amikor az oldalt a böngészőben tekintjük meg.
<!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) Mire használható az ng-controller külső fájlokban az AngularJS-ben
Hajtsa végre a következő lépéseket az ng-controller használatához az AngularJS külső fájljaiban
Step 1) Az app.js fájlban adja hozzá a következő kódot a vezérlőhöz
angular.module('app',[]).controller('HelloWorldCtrl',function($scope)
{
$scope.message = "Hello World"
});
Step 2) Most a Sample.html fájlban adjon hozzá egy div osztályt, amely tartalmazza az ng-controller direktívát, majd adjon hozzá hivatkozást a „message” tagváltozóra.
<!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) Írjon kódot metódusok meghatározásához az AngularJS Controllerben?
Íme egy kód az AngularJS Controller metódusainak meghatározásához:
<!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) Írjon kódot az ng-modell segítségével a többsoros bemeneti vezérlés megjelenítéséhez az AngularJS-ben.
Itt van egy kód, amely az ng-modellt használja a többsoros bemeneti vezérlés megjelenítéséhez az AngularJS-ben:
<!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) Írjon kódot a bemeneti elemek használatának bemutatására.
Íme egy kódpélda az AngulaJS bemeneti elemekkel:
<!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) Hogyan készíthetsz modellt PHP-ben?
Itt van egy kód a modell létrehozásához PHP-ben:
<?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) Miért érdemes PHP MVC Framework-et használni?
Használja a PHP MVC Framework-et, mert leegyszerűsíti az összetett technológiákkal való munkát:
- Az összes bonyolult megvalósítási részlet elrejtése
- Szabványos módszerek biztosítása, amelyeket alkalmazásaink elkészítéséhez használhatunk.
- Megnövekedett fejlesztői termelékenység, mivel az olyan tevékenységek alapkivitelezése, mint az adatbázishoz való csatlakozás, a felhasználói bemenetek megtisztítása stb., részben már megvalósult.
- A professzionális kódolási szabványok betartása
54) Melyek a népszerű PHP MVC keretrendszerek?
Íme a népszerű PHP MVC keretrendszerek:
CodeGyújtó: Ez az egyik legnépszerűbb PHP MVC keretrendszer. Könnyű és rövid tanulási görbéje van. Könyvtárak gazdag készletével rendelkezik, amelyek segítenek webhelyek és alkalmazások gyors létrehozásában. Az OOP programozásban korlátozott ismeretekkel rendelkező felhasználók is használhatják.
Kohana: Ez egy hierarchikus modellnézet-vezérlő (HMVC), amely egy biztonságos és könnyű keretrendszer. Gazdag fejlesztési komponenskészlettel rendelkezik.ping alkalmazások gyorsan.
TortaPHP: A Ruby on rails mintájára készült. Olyan fogalmakról ismert, mint a szoftvertervezési minták, a konfiguráció feletti konvenció, az ActiveRecord stb.
Zend: Ez egy erőteljes keret;
- Biztonságos, megbízható, gyors és méretezhető
- Támogatja a Web 2.0-t és webszolgáltatások létrehozását.
Olyan gyártóktól származó API-kat tartalmaz, mint Amazon, Google, Flickr, Yahoo, stb. Ideális fejlesztőknekping üzleti alkalmazások.
55) Hogyan hozhat létre nézeteket PHP-ben?
Itt van egy kód a nézetek létrehozásához PHP-ben:
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>
Most hozzuk létre a results.php eredményoldalt
<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>
Ezek az interjúkérdések a viva-ban is segítenek.







