Software development has come a long way since the 90s, and it has undergone a lot of modifications. One of the most significant additions in software development is the MVC (Model-View-Controller) pattern. In general, MVC is an architectural pattern for developing user interfaces that divide a program logic into three parts, namely model, view, and controller.
If you plan to appear for an MVC interview, this article will help you enhance your knowledge of MVC architecture. We will walk you through some of the most frequently asked MVC interview questions along with their appropriate answers.
Top ASP.Net MVC Interview Questions and Answers
We have picked the most commonly asked MVC interview questions and categorized them into three levels: beginner, intermediate, and advanced.
Beginner-level MVC Interview Questions
1. What can you tell about MVC?
MVC stands for Model-view-controller. It is a software design pattern traditionally used for developing desktop graphical user interfaces (GUIs). Today, it is also used for developing mobile and web applications. The MVC architectural pattern divides an application into three logical parts, namely model, view, and controller. Each component has its own purposes and handles different aspects of an application.
2. Explain Model, View, and Controller in detail.
Model, View, and Controller are the components of MVC.
Model: It is the central component of the MVC architectural pattern, which manages the data, rules, and logic of an application. Also, the Model is the lowest level of the MVC pattern that maintains an application’s data and is independent of the user interface.
View: A view provides the presentation of the model to users. It requests data from the model and visually presents that data to users. It is also referred to as the Presentation layer since it represents data to the end-users. A view is responsible for managing the communication between the controller and end-users.
Controller: It controls the interaction between model and view components. It accepts user inputs and converts them into commands for model and view components. A controller provides commands for the model to change its state. Also, it can send commands to the view to change the model’s presentation.
3. Can you explain the life cycle of an MVC application?
The two primary execution steps involved in any web application are - understanding the request from the end-users and responding to them with an appropriate response. Similarly, there are two steps in the life cycle of an MVC application, as follows:
- Creating the Request Object
The creation of the request object involves the following four steps:
- Fill Route
- Fetch Route
- Request Context Created
- Controller Instance Created
- Creating the Response Object
The creation of the response object involves the following two steps:
- Execute Action
- Result Sent
4. Can you tell in which assembly the MVC framework is defined?
The MVC framework is defined in the System.Web.Mvc assembly.
5. What are the benefits of using MVC?
The following are some key benefits of model-view-controller:
- Multiple View Support: MVC can display multiple views of the same data since it separates the model from the view.
- Faster Development Process: This pattern enables parallel development, which speeds up the overall development process. While developing an application, all three parts of an application, i.e., model, view, and controller, can be handled by different programmers simultaneously. Therefore, it is possible to develop applications using the MVC pattern three times faster than other development patterns.
- In MVC, any modification in the model or view does not affect the entire architecture since the model is independent of view.
- It is possible to integrate the MVC architecture with the JavaScript framework. Therefore, applications developed using the MVC pattern can work with site-specific browsers and also with desktop widgets.
- MVC organizes large web applications more systematically since it divides the code into three different parts, namely model, view, and controller. It keeps an application’s business logic separated from the presentation logic.
- It supports the development of SEO-friendly web pages and web applications.
6. What are the downsides of MVC?
The following are some of the major downsides of the MVC pattern are:
- It requires multiple programmers since every part of an application is developed parallelly.
- The MVC architecture is pretty complex to understand.
- It is not ideal for small applications.
7. State different return types of the Controller action method.
The Controller action method uses the following different return types:
- View Result
- Content Result
- Redirect Result
- JSON Result
- JavaScript Result
8. Can you explain the role of Abstraction, Presentation, and Control in MVC?
The following is the role of Abstraction, Presentation, and Control in MVC:
- Abstraction: It stores the data associated with an application’s functionalities. It is analogous to the Model component in MVC.
- Presentation: It is responsible for graphically presenting a specific abstraction within an application.
- Control: It maintains the consistency and uniformity between the abstraction and its presentation.
9. How many possible ways are there to maintain the sessions in MVC? List them.
The following are the three possible ways to maintain the sessions in MVC:
- temp data
- view bag
- viewdata
10. What is Spring MVC?
Spring MVC is a Java framework for developing loosely coupled and flexible web applications, and it follows the model-view-controller architectural pattern. In addition, Spring MVC can implement all features of the core Spring framework, including Dependency Injection and Inversion of Control. It is designed around DispatcherServlet, which handles all requests and responses.
11. Explain ASP.NET MVC.
ASP.NET MVC is a web application framework based on the model-view-controller (MVC) architectural pattern. It is an open-source web application framework licensed under the Apache License 2.0. It serves as an alternative to ASP.NET webforms for building web applications.
12. What do you understand about a partial view in MVC?
A partial view in MVC is a view that renders a part of view content. In other words, we can say that a partial view in MVC is a reusable portion of a web page. We can reuse a partial view in other views, and it helps us to eliminate code duplication.
Also, it enables us to render a view within the parent view. We can instantiate the partial view using a copy of the ViewDataDictionary object. This object is available in the parent view and enables the partial view to access the data of the parent view.
13. List out two ways to add constraints to a route?
We can add constraints to a route using:
- Regular expressions.
- An object that implements IRouteConstraint Interface.
14. Explain the terms TempData, ViewData, and ViewBag.
TempData, ViewData, and ViewBag are all the objects in ASP.NET MVC. They assist in passing data:
- From controller to view.
- From one action to another action in the controller.
- Between controllers.
- Between consecutive requests.
ViewBag: It is a dynamic object that passes the data from controller to view. It passes the data as a property of the ViewBag object.
ViewData: It is a dictionary object that passes the data in the form of a key-value pair from the controller to view.
TempData: It is a dictionary object that passes the data from one action to another action within a controller or between multiple controllers.
15. List out different steps involved in the execution of an MVC project?
The following are the steps required for the execution of an MVC project:
- Receive the first request for an application.
- Perform routing.
- Create an MVC request handler.
- Create a controller.
- Execute the controller.
- Invoke action.
- Execute result.
16. Can you tell the difference between adding routes in an MVC application and a webform application?
In a webform application, we add routes by using the MapPageRoute() function of the RouteCollection class. On the other hand, we add routes in an MVC application by using the MapRoute() function.
17. Tell the use of action filters in MVC. List out the action filters in the ASP.NET Framework.
An action filter in MVC is an attribute applied to a Controller action or an entire controller to modify the way the Controller action is executed. The following are the three ActionFilters in the ASP.NET MVC framework:
- OutputCache: It caches the output of the Controller action for a specific amount of time.
- HandleError: It handles errors that occurred during the execution of the Controller action.
- Authorize: It restricts access to a particular user or a role.
18. What do you understand by routing in MVC?
Routing in ASP.NET MVC is a process of mapping incoming browser requests to specific Controller actions. When an MVC application launches, it registers one or more patterns with the MVC framework’s route table and instructs the routing engine what to do with incoming requests matching those patterns. When an application receives a request, the routing engine matches the request’s URL against the registered patterns’ URL and gives back the response depending upon the pattern match.
19. Can you tell different properties of MVC Routes?
MVC Routes determine which controller method to implement for a given URL. A URL consists of the following properties:
- Route name: It is the URL pattern mapped to a handler. A handler in an MVC application can be a controller that processes the request.
- URL Pattern: It contains literal values and variable placeholders. They are delimited by a slash (/) and are present in segments of URL.
- Defaults: It is an object containing default route values. When we define a route, we can assign a default value for a parameter.
- Constraints: It is a set of constraints to be applied against the URL pattern.
20. How will you navigate from one view to another view in MVC?
To navigate from one view to another view in MVC, we can use the ActionLink method. Here is a code that creates an URL to navigate to the “Home” controller and invoke the “GotoHome’ action.
<%= Html.ActionLink("Home","Gotohome") %>
Intermediate-level MVC Interview Questions
21. What are the two different approaches for implementing AJAX in MVC?
The two different approaches for implementing AJAX in MVC are jQuery and AJAX libraries.
- jQuery: It is a feature-rich JavaScript library that makes DOM manipulation and traversal, CSS animation, AJAX, and event handling easier. It has a user-friendly API that is compatible with several leading browsers.
- AJAX libraries: Asynchronous JavaScript and XML libraries are the set of web development libraries written in JavaScript.
22. State some differences between ActionResult and ViewResult in MVC.
The following table highlights common differences between ActionResult and ViewResult:
ActionResult | ViewResult |
It is an abstract class. | It is a concrete class. |
ActionResult is the base class for ViewResult. | ViewResult is a derived class of ActionResult. |
There are multiple subtypes of ActionResult, such as ViewResult, PartialViewResult, EmptyResult, JsonResult, etc. | There are no subtypes of ViewResult since it is a concrete class. |
When the Controller action has the ActionResult return type, it can return any subtypes of the ActionResult class. | When the Controller action has the ViewResult return type, it only returns the view. |
23. Explain the process of routing in MVC.
The following steps describe the process of routing:
- There is a RouteCollection, a group of routes responsible for registering the routes in an application. RouteCollection has the RegisterRoutes method that records the routes in it.
- Now, a route in the RouteCollection defines a URL pattern and a handler to check if the request matches the pattern.
- There are three parameters in MVC routing. The first parameter determines the name of the route, the second determines the URL pattern, and the last provides default values for the placeholders if they are not determined.
24. Can you explain the use of JsonResult in MVC?
JsonResult is one of the subtypes of the ActionResult return type. It is used to send the data back to a browser or a view in the JSON (JavaScript Object Notation) format.
25. State some significant differences between view and partial view in MVC.
The below table describes the differences between view and partial view:
View | Partial View |
A view contains the layout page. | A partial view does not contain the layout page. |
The _viewstart.cshtml page is rendered before any view is rendered. | It does not check for the _viewstart.cshtml page. |
It may have markup tags, like body, meta, head, title, Html, meta, etc. | A partial view does not have any markup tag since it is designed to render a view within the parent view. |
26. List out different types of results in MVC.
There are 12 different types of results in MVC, where one ‘ActionResult’ is the main class, and all other remaining are the subtypes of ‘ActionResult’. The following is list of 12 subtypes:
- PartialViewResult
- RedirectResult
- JsonResult
- ContentResult
- FileStreamResult
- ViewResult
- EmptyResult
- RedirectToRouteResult
- JavaScriptResult
- FileContentResult
- FilePathResult
27. What are filters in MVC, and why do we need them?
In general, the Controller action method handles incoming requests and sends the responses back to clients who made the requests. However, if we wish to execute some code or logic before or after executing the Controller action method, we use filters. A filter in the ASP.NET MVC framework is a custom class where we can inject extra code or logic to execute before or after the Controller action method is invoked.
We need filters in MVC to carry out some standard functionalities in an application, such as:
- Logging
- Caching
- Authentication
- Authorization
- Error Handling
28. List out types of filters in MVC.
There are five different types of filters in the ASP.NET MVC5 framework, as listed below:
- Authentication Filter: Performs authentication before executing an action method.
- Authorization Filter: Performs authorization before executing an action method.
- Action Filter: Performs some operations before and after executing an action method.
- Result Filter: Performs some operations before and after the execution of the view.
- Exception Filter: Performs some operations if there is an unhandled exception thrown during the execution of the ASP.NET MVC pipeline.
29. How is the ordering of executing filters done when multiple filters are used?
If multiple filters are used, the order for executing filters is as follows:
- Authentication Filter
- Authorization Filter
- Action Filter
- Result Filter
- Exception Filter
30. Can we create custom filters in MVC?
Yes, we can create custom filters in MVC. If built-in filters do not serve our requirements, we can create our custom filters in MVC.
31. Where can we configure filters in ASP.NET MVC?
We can configure filters in ASP.NET MVC at three different levels of an application, as listed below:
- Global level, where filters are applicable for all controllers and all action methods.
- Controller level, where filters are applicable for all action methods of a particular controller.
- Action level, where filters are applicable for a specific action method.
32. Can you state the importance of NonActionAttribute?
All the public methods associated with the Controller class are considered action methods. If we want a public method in a controller but don’t want it to be considered an action method, we use NonActionAttribute. In other words, we use NonActionAttribute to prevent a method from getting invoked as an action method.
33. Explain the use of the default route {resource}.axd/{*pathinfo}.
The default route {resource}.axd/{*pathinfo} does not pass the requests for the web resource files, such as WebResource.axd or ScriptResource.axd to a controller.
34. Can you tell two instances where routing is not required?
The following are the two instances where you do not require routing:
- When there is a physical file that matches the URL pattern.
- When routing is disabled for the URL pattern.
Advanced-level MVC Interview Questions
35. What do you understand by output caching in MVC?
Output caching in MVC allows us to cache the content returned by any controller method. Every time the same controller method is invoked, there is no need to generate the same content since it is cached. The primary purpose of using the output cache is to enhance the performance of an ASP.NET MVC application.
Output caching offers other benefits, such as reducing network traffic, reducing database server round trips, and reducing server round trips. There are certain things to keep in mind while caching the output content of any controller method.
- Avoid caching content that is unique to every user.
- Cache the content that is accessed frequently.
- Avoid caching content that is accessed rarely.
36. Can you tell me something about Minification and Bundling in MVC?
Minification and Bundling in MVC are two different techniques used to reduce the load time and improve the performance of ASP.NET MVC applications. The Bundling technique is useful in reducing the number of requests to the server, whereas Minification helps reduce the size of the requested assets.
Bundling: Most browsers process six requests to a single website parallelly. As a result, a browser queues all other additional requests. If we reduce the number of requests to the browsers for processing, the waiting time of other requests in a queue also reduces. To reduce requests from the browsers to the server, bundling is used.
Minification: Minification is a technique that removes all unnecessary characters from a text-based resource in such a way it does not affect the expected functionality of an ASP.NET MVC application. Removing unnecessary characters involves removing comments and white spaces, shortening identifiers, and aliasing functions.
37. How do you handle errors in MVC?
In MVC, we handle errors using Exception handling. Exception handling is the process of responding to exceptional conditions that need special processing. In ASP.NET MVC. There are multiple ways of handling exceptions, as listed below:
- Try-catch-finally.
- Using the HandleError attribute on actions and controllers.
- Handling Application_Error event.
- Overriding OnException method.
- Setting a global exception handling filter.
- Extending HandleError attribute.
38. Explain Scaffolding in MVC.
Various MVC frameworks, like ASP.NET MVC, Cake PHP, Ruby on Rails, etc., use Scaffolding. In general, scaffolding automatically generates the code for basic CRUD (create, read, update, and delete) operations against a database using the Entity Framework model. Also, we can edit this auto-generated code as per our requirements.
39. What are the types of templates in Scaffolding?
Scaffolding consists of four templates, as listed below:
- Page templates
- Entity page templates
- Filter templates
- Field page templates
40. What is a razor view engine in MVC?
A razor view engine in MVC is a server-side markup language enabling us to write HTML and server-side code in web pages using VB.NET or C#.
41. Name the file extensions for razor views.
The following are the file extensions for razor views:
- .cshtml, when an MVC application uses the C# programming language.
- .vbhtml, when an MVC application uses the VB programming language.
42. State Razor syntax rules for C#.
The following are the Razor syntax rules for C#:
- The files must have a .cshtml extension.
- Code blocks must be enclosed in ‘@{ ... }’.
- Code statements must end with a semicolon (;).
- Variables are declared using the ‘var’ keyword.
- Inline variables and functions must start with ‘@’.
- Strings are enclosed in “ “.
- C# code is case-sensitive.
43. State Razor syntax rules for VB.NET.
The following are the Razor syntax rules for VB.NET:
- Code blocks are enclosed in ‘@Code ... End Code’.
- Inline variables and functions must start with ‘@’.
- The files should have a .vbhtml extension.
- Variables are declared using the ‘Dim’ keyword.
- Strings are enclosed in “ “.
- VB.NET code is not case-sensitive.
44. Explain GET and POST Action types.
GET: This action type is used to request data from a specific resource. It is mandatory to pass the URL with GET. Also, GET can take the following parameters:
.get( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] ).done/.fail
POST: This action type is used to submit the data to a specific resource for processing. With POST, it is mandatory to pass the URL and the data to be processed. It can take the following parameters:
.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )
45. Explain validation in MVC.
Validation in MVC is used to verify whether the user input is valid or not. ASP.NET provides a collection of easy-to-use validations. Also, these validations can be used for checking errors and displaying messages to the user, if required.
46. How many types of validations can we do in ASP.NET MVC? List them.
We can do three different types of validations in ASP.NET MVC that are as follows:
- JavaScript validation or HTML validation.
- Database validation.
- ASP.NET MVC model validation.
The ASP.NET MVC model validation is the most secure one, and they are done using Data Annotations. To use Data Annotations in an application, we need to use the following namespace:
System.ComponentModel.DataAnnotations
47. Can you tell something about namespaces in MVC?
There are four significant namespaces in MVC, as described below:
- System.Web.Mvc: It has classes and interfaces that support the MVC design pattern for web applications. This interface has classes that represent controllers, controller factories, action results, views, partial views, and model binders.
- System.Web.Mvc.Html: It contains classes that render HTML controls in an MVC application. These classes support partial views, validations, links, and form input.
- System.Web.Mvc.Ajax: It contains classes that support AJAX scripts in an ASP.NET MVC application.
- System.Web.Mvc.Async: It has classes and interfaces that support asynchronous actions in an ASP.NET MVC application.
48. Explain different methods to render the views in ASP.NET MVC.
The following are the methods to render the views in ASP.NET MVC:
- View(): It returns a view from the action.
- PartialView(): It returns a partial view from the action.
- Redirect(): It redirects to a specified URL and this method is analogous to "Response.Redirect()" in webforms.
- RedirectToAction(): It redirects to a different action present in the same controller or another controller.
- RedirectToRoute(): It redirects to action from the specified URL but the URL in the routeing table should be matched.
49. How to add CSS in ASP.NET MVC?
Here is the sample code to add CSS to razor views in ASP.NET mVC:
< link rel="StyleSheet" href="/@Href(~Content/Site.css")" type="text/css"/>
50. What do you know about Glimpse in MVC?
Glimpse is an open-source collection of NuGet packages that provides detailed information about debugging, performance, and diagnostic of ASP.NET MVC applications.
Conclusion
Here, we came to an end of the curated list of frequently asked MVC interview questions. Through this article, we have covered almost all the important interview questions related to MVC and ASP.NET MVC. You can go through these questions to understand various MVC concepts and prepare yourself to ace your next MVC interview.
Also, if you come across some other questions during your MVC interview, feel free to share them with others in the comments below.
People are also reading:
Leave a Comment on this Post