Top 31 MVC-interviewvragen & Antwoorden

Anonim

Download PDF

1) Leg uit wat Model-View-Controller is?

MVC is een softwarearchitectuurpatroon voor het ontwikkelen van webapplicaties. Het wordt afgehandeld door drie objecten Model-View-Controller.

2) Wat stelt Model-View-Controller voor in een MVC-applicatie?

In een MVC-model,

  • Model - Het vertegenwoordigt het toepassingsgegevensdomein. Met andere woorden, de bedrijfslogica van applicaties is vervat in het model en is verantwoordelijk voor het onderhouden van gegevens
  • Weergave - Het vertegenwoordigt de gebruikersinterface waarmee de eindgebruikers communiceren. Kortom, alle logica van de gebruikersinterface bevindt zich in de VIEW
  • Controller - Het is de controller die reageert op gebruikersacties. Op basis van de gebruikersacties reageert de respectieve controller binnen het model en kiest een weergave die de gebruikersinterface weergeeft. De gebruikersinvoerlogica is opgenomen in de controller

3) Leg uit in welke assembly is het MVC-raamwerk gedefinieerd?

Het MVC-framework is gedefinieerd in System.Web.Mvc.

4) Noem enkele verschillende retourtypen van een controlleractiemethode?

  • Bekijk resultaat
  • Javascript-resultaat
  • Omleidingsresultaat
  • Json-resultaat
  • Inhoudsresultaat

5) Wat is het verschil tussen het toevoegen van routes aan een webformulierapplicatie en een MVC-applicatie?

Om routes aan een webformuliertoepassing toe te voegen, kunnen we de MapPageRoute () -methode van de RouteCollection-klasse gebruiken, waar u routes aan een MVC-toepassing kunt toevoegen, kunt u de MapRoute () -methode gebruiken.

6) Noem wat de twee manieren zijn om beperkingen aan een route toe te voegen?

De twee methoden om beperkingen aan een route toe te voegen zijn

  • Gebruik reguliere expressies
  • Gebruik een object dat IRouteConstraint Interface implementeert

7) Wat zijn de voordelen van MVC?

  • MVC verdeelt uw project in een ander segment en het wordt gemakkelijk voor ontwikkelaars om aan te werken
  • Het is gemakkelijk om een ​​deel van uw project te bewerken of te wijzigen waardoor het project minder ontwikkelings- en onderhoudskosten verlaagt
  • MVC maakt uw project systematischer

8) Wat doen de functies "beforFilter ()", "beforeRender" en "afterFilter" in Controller?

  • beforeFilter (): Deze functie wordt uitgevoerd voor elke actie in de controller. Het is de juiste plaats om te controleren of er een actieve sessie is of om gebruikersrechten te inspecteren.
  • beforeRender (): deze functie wordt aangeroepen na de actielogica van de controller, maar voordat de weergave wordt weergegeven. Deze functie wordt niet vaak gebruikt, maar is mogelijk vereist als u render () handmatig aanroept vóór het einde van een bepaalde actie
  • afterFilter (): deze functie wordt aangeroepen na elke controlleractie en nadat het renderen is voltooid. Het is de laatste controllermethode die wordt uitgevoerd

9) Verklaar de rol van componenten Presentation, Abstraction and Control in MVC?

  • Presentatie: het is de visuele weergave van een specifieke abstractie binnen de applicatie
  • Abstractie: het is de zakelijke domeinfunctionaliteit binnen de applicatie
  • Controle: het is een component die consistentie behoudt tussen de abstractie binnen het systeem en hun presentatie aan de gebruiker, naast de communicatie met andere bedieningselementen binnen het systeem

10) Noem de voor- en nadelen van het MVC-model?

Voordelen

Nadelen

  • Het vertegenwoordigt een duidelijke scheiding tussen bedrijfslogica en presentatielogica
  • Elk MVC-object heeft verschillende verantwoordelijkheden
  • De ontwikkeling verloopt parallel
  • Gemakkelijk te beheren en te onderhouden
  • Alle klassen en objecten zijn onafhankelijk van elkaar
  • Het modelpatroon is weinig complex
  • Inefficiëntie van gegevenstoegang in zicht
  • Met een moderne gebruikersinterface is het moeilijk om MVC te gebruiken
  • U hebt meerdere programmeurs nodig voor parallelle ontwikkeling
  • Kennis van meerdere technologieën is vereist

11) Verklaar de rol van "ActionFilters" in MVC?

In MVC helpen "ActionFilters" u om logica uit te voeren terwijl MVC-actie wordt uitgevoerd of wordt uitgevoerd.

12) Leg uit wat de stappen zijn voor de uitvoering van een MVC-project?

De stappen voor de uitvoering van een MVC-project omvatten

  • Ontvang een eerste verzoek voor de aanvraag
  • Voert routing uit
  • Maakt MVC-aanvraaghandler
  • Maak een controller
  • Voer Controller uit
  • Roep actie op
  • Resultaat uitvoeren

13) Leg uit wat routing is? Wat zijn de drie segmenten voor routering is belangrijk?

Routing helpt u bij het bepalen van een URL-structuur en het in kaart brengen van de URL met de controller.

De drie segmenten die belangrijk zijn voor routing zijn

  • ControllerName
  • ActionMethodName
  • Parameter

14) Leg uit hoe routing wordt gedaan in het MVC-patroon?

Er is een groep routes die de RouteCollection wordt genoemd en die bestaat uit geregistreerde routes in de applicatie. De methode RegisterRoutes legt de routes in deze verzameling vast. Een route definieert een URL-patroon en een handler die moet worden gebruikt als het verzoek overeenkomt met het patroon. De eerste parameter voor de MapRoute-methode is de naam van de route. De tweede parameter is het patroon waarmee de URL overeenkomt. De derde parameter kunnen de standaardwaarden voor de tijdelijke aanduidingen zijn als ze niet zijn bepaald.

15) Leg met behulp van een hyperlink uit hoe u van de ene weergave naar de andere kunt navigeren?

Door de "ActionLink" -methode te gebruiken zoals weergegeven in de onderstaande code. De onderstaande code zal een eenvoudige URL maken die helpt om naar de "Home" -controller te navigeren en de "GotoHome" -actie aan te roepen.

Code samenvouwen / kopiëren

<% = Html.ActionLink ("Home", "Gotohome")%>

16) Geef aan hoe de sessie in MVC kan worden gehandhaafd?

De sessie kan in MVC worden onderhouden op drie manieren: tempdata, viewdata en viewbag.

17) Wat is het verschil tussen Temp-gegevens, View en View Bag?

  • Tijdelijke gegevens: het helpt om gegevens bij te houden wanneer u van de ene controller naar de andere controller overschakelt.
  • Gegevens bekijken: het helpt om gegevens bij te houden wanneer u van controller naar weergave gaat
  • View Bag: het is een dynamische wrapper rond weergavegegevens

18) Wat is een gedeeltelijke weergave in MVC?

Gedeeltelijke weergave in MVC geeft een deel van de weergave-inhoud weer. Het is nuttig om codeduplicatie te verminderen. In eenvoudige bewoordingen maakt een gedeeltelijke weergave het mogelijk om een ​​weergave binnen de bovenliggende weergave weer te geven.

19) Leg uit hoe u Ajax in MVC kunt implementeren?

In MVC kan Ajax op twee manieren worden geïmplementeerd

  • Ajax-bibliotheken
  • JQuery

20) Wat is het verschil tussen "ActionResult" en "ViewResult"?

"ActionResult" is een abstracte klasse, terwijl "ViewResult" is afgeleid van de klasse "AbstractResult". "ActionResult" heeft een aantal afgeleide klassen zoals "JsonResult", "FileStreamResult" en "ViewResult".

"ActionResult" is het beste als u verschillende soorten weergaven dynamisch afleidt.

21) Leg uit hoe u het resultaat in JSON-formaat in MVC kunt terugsturen?

Om het resultaat in JSON-indeling in MVC terug te sturen, kunt u de klasse "JSONRESULT" gebruiken.

22) Leg uit wat het verschil is tussen weergave en gedeeltelijke weergave?

Visie

Gedeeltelijk uitzicht

  • Het bevat de lay-outpagina
  • Voordat een weergave wordt weergegeven, wordt de pagina viewstart weergegeven
  • De weergave kan opmaaktags bevatten zoals body, html, head, title, meta etc.
  • De weergave is niet licht van gewicht in vergelijking met de gedeeltelijke weergave
  • Het bevat niet de lay-outpagina
  • Gedeeltelijke weergave verifieert niet voor een viewstart.cshtml. We kunnen geen gemeenschappelijke code voor een gedeeltelijke weergave binnen de viewStart.cshtml.page plaatsen
  • Gedeeltelijke weergave is speciaal ontworpen om binnen de weergave weer te geven en bevat daarom geen mark-up
  • We kunnen een reguliere weergave doorgeven aan de RenderPartial-methode

23) Maak een lijst van de soorten resultaten in MVC?

In MVC zijn er twaalf soorten resultaten in MVC waarbij de klasse "ActionResult" de hoofdklasse is, terwijl de 11 hun subtypes zijn

  • BekijkResultaat
  • PartialViewResult
  • EmptyResult
  • RedirectResult
  • RedirectToRouteResult
  • JsonResult
  • JavaScriptResult
  • ContentResult
  • FileContentResult
  • FileStreamResult
  • FilePathResult

24) Wat is het belang van NonActionAttribute?

Alle openbare methoden van een controllerklasse worden behandeld als de actiemethode. Als u deze standaardmethode wilt voorkomen, moet u de openbare methode toewijzen met NonActionAttribute.

25) Wat is het gebruik van de standaardroute {resource} .axd / {* pathinfo}?

Deze standaardroute voorkomt dat verzoeken om een ​​webresourcebestand zoals Webresource.axd of ScriptResource.axd worden doorgegeven aan de controller.

26) Noem de volgorde van de filters die worden uitgevoerd, als de meerdere filters zijn geïmplementeerd?

De filtervolgorde zou zijn als

  • Autorisatiefilters
  • Actiefilters
  • Antwoordfilters
  • Uitzonderingsfilters

27) Geef aan welke filters er uiteindelijk worden uitgevoerd?

Uiteindelijk worden "Uitzonderingsfilters" uitgevoerd.

28) Wat zijn de bestandsextensies voor scheermesweergaven?

Voor scheermesweergaven zijn de bestandsextensies

  • .cshtml: als C # de programmeertaal is
  • .vbhtml: als VB de programmeertaal is

29) Noem op wat de twee manieren zijn om beperkingen aan een route toe te voegen?

Twee methoden voor het toevoegen van beperkingen aan de route is

  • Gebruik van reguliere expressies
  • Een object gebruiken dat de IRouteConstraint-interface implementeert

30) Noem twee gevallen waarin routering niet is geïmplementeerd of vereist?

Twee gevallen waarin routering niet vereist is, zijn

  • Wanneer een fysiek bestand wordt gevonden dat overeenkomt met het URL-patroon
  • Als routing is uitgeschakeld voor een URL-patroon

31) Wat zijn de belangrijkste voordelen van het gebruik van MVC?

Er zijn twee belangrijke voordelen van het gebruik van MVC

  • Omdat de code achter een apart klassenbestand wordt geplaatst, kunt u de code grotendeels gebruiken
  • Omdat achter code simpelweg naar de.NET-klasse wordt verplaatst, is het mogelijk om UI-testen te automatiseren. Dit biedt de mogelijkheid om handmatige tests te automatiseren en unit-tests te schrijven.