Basic Questions
Q1. What is ASP.NET Core MVC?
Answer
ASP.NET Core MVC is a modern framework for building web applications. It follows the Model-View-Controller (MVC) design pattern, making it easier to manage and develop web apps.
Q2. Why use ASP.NET Core MVC?
Answer
ASP.NET Core MVC offers benefits like cross-platform support, better performance, and a modular architecture. It also includes built-in features like dependency injection.
Q3. What is the MVC design pattern?
Answer
MVC stands for Model-View-Controller. It separates an application into three parts: the Model (data), the View (user interface), and the Controller (handles user input).
Q4. What does a Controller do in ASP.NET Core MVC?
Answer
A Controller handles user requests, processes them, and returns the appropriate response. It acts as an intermediary between the Model and the View.
Q5. What is a View in ASP.NET Core MVC?
Answer
A View is responsible for displaying the user interface. It uses the Razor view engine to generate HTML.
Q6. What is a Model in ASP.NET Core MVC?
Answer
A Model represents the data and business logic of the application. It interacts with the database to retrieve and store data.
Q7. What is Routing in ASP.NET Core MVC?
Answer
Routing maps URLs to specific controller actions. It defines how the application responds to different URL patterns.
Q8. What is the 'Startup' class in ASP.NET Core MVC?
Answer
The 'Startup' class configures the application's services and the request processing pipeline. It sets up dependency injection and middleware.
Q9. What is Dependency Injection in ASP.NET Core MVC?
Answer
Dependency Injection is a design pattern that allows the injection of dependencies into a class. It promotes loose coupling and easier testing.
Q10. What is the Razor view engine?
Answer
The Razor view engine is a syntax for embedding server-based code into web pages. It is used to generate HTML in ASP.NET Core MVC views.
Intermediate Questions
Q11. What is Attribute-based Routing?
Answer
Attribute-based routing allows you to define routes directly on controller actions using attributes. It provides more control over URL patterns.
Q12. What are '[HttpGet]' and '[HttpPost]' attributes?
Answer
These attributes specify that a controller action should respond to HTTP GET and POST requests, respectively.
Q13. What is Model Binding in ASP.NET Core MVC?
Answer
Model Binding maps incoming request data to action method parameters. It converts data from HTTP requests into .NET types.
Q14. What are Data Annotations?
Answer
Data Annotations are attributes used to define validation rules and metadata for model properties. They help in enforcing data integrity.
Q15. What does the '[Required]' attribute do?
Answer
The '[Required]' attribute ensures that a model property must have a value. It is used for validation.
Q16. What does the '[StringLength]' attribute do?
Answer
The '[StringLength]' attribute specifies the maximum length of a string property. It is used for validation.
Q17. What does the '[Range]' attribute do?
Answer
The '[Range]' attribute specifies the acceptable range of values for a numeric property. It is used for validation.
Q18. What does the '[RegularExpression]' attribute do?
Answer
The '[RegularExpression]' attribute ensures that a string property matches a specific pattern. It is used for validation.
Q19. What does the '[DataType]' attribute do?
Answer
The '[DataType]' attribute specifies the data type of a property, such as EmailAddress or Date. It is used for validation and formatting.
Q20. What does the '[Display]' attribute do?
Answer
The '[Display]' attribute specifies the display name and formatting options for a property. It customizes the appearance of data in views.
Advanced Questions
Q21. What does the '[Authorize]' attribute do?
Answer
The '[Authorize]' attribute restricts access to controller actions based on user authentication and authorization.
Q22. What does the '[AllowAnonymous]' attribute do?
Answer
The '[AllowAnonymous]' attribute allows anonymous access to controller actions, bypassing the '[Authorize]' attribute.
Q23. What does the '[ValidateAntiForgeryToken]' attribute do?
Answer
The '[ValidateAntiForgeryToken]' attribute prevents Cross-Site Request Forgery (CSRF) attacks by validating anti-forgery tokens in HTTP requests.
Q24. What does the '[Bind]' attribute do?
Answer
The '[Bind]' attribute specifies which properties of a model should be included or excluded from model binding. It helps in preventing over-posting attacks.
Q25. What does the '[FromBody]' attribute do?
Answer
The '[FromBody]' attribute specifies that a parameter should be bound using the request body. It is commonly used in Web API controllers.
Q26. What does the '[FromQuery]' attribute do?
Answer
The '[FromQuery]' attribute specifies that a parameter should be bound using the query string. It retrieves data from the URL query parameters.
Q27. What does the '[FromRoute]' attribute do?
Answer
The '[FromRoute]' attribute specifies that a parameter should be bound using the route data. It retrieves data from the URL route parameters.
Q28. What does the '[FromForm]' attribute do?
Answer
The '[FromForm]' attribute specifies that a parameter should be bound using form data. It retrieves data from HTML form submissions.
Q29. What does the '[FromHeader]' attribute do?
Answer
The '[FromHeader]' attribute specifies that a parameter should be bound using the request headers. It retrieves data from HTTP headers.
Q30. What does the '[FromServices]' attribute do?
Answer
The '[FromServices]' attribute specifies that a parameter should be resolved from the dependency injection container. It injects services into controller actions.
Important Topics
Q31. What is REST in Web API?
Answer
REST is an architectural style for designing networked applications. It uses standard HTTP methods like GET, POST, PUT, and DELETE to manipulate resources.
Q32. What does the '[ApiController]' attribute do?
Answer
The '[ApiController]' attribute indicates that a controller is a Web API controller. It enables automatic model validation and other API-specific behaviors.
Q33. What does the '[Route]' attribute do?
Answer
The '[Route]' attribute defines custom routes for controller actions. It allows you to specify the URL pattern that maps to a specific action method.
Q34. What does the '[HttpDelete]' attribute do?
Answer
The '[HttpDelete]' attribute specifies that a controller action should respond to HTTP DELETE requests. It is commonly used in Web API controllers to delete resources.
Q35. What does the '[HttpPut]' attribute do?
Answer
The '[HttpPut]' attribute specifies that a controller action should respond to HTTP PUT requests. It is commonly used in Web API controllers to update resources.
Q36. What does the '[HttpPatch]' attribute do?
Answer
The '[HttpPatch]' attribute specifies that a controller action should respond to HTTP PATCH requests. It is commonly used in Web API controllers to partially update resources.
Q37. What does the '[HttpHead]' attribute do?
Answer
The '[HttpHead]' attribute specifies that a controller action should respond to HTTP HEAD requests. It retrieves metadata about a resource without the response body.
Q38. What does the '[HttpOptions]' attribute do?
Answer
The '[HttpOptions]' attribute specifies that a controller action should respond to HTTP OPTIONS requests. It describes the communication options for the target resource.
Q39. What does the '[Produces]' attribute do?
Answer
The '[Produces]' attribute specifies the content types that a controller action can produce. It indicates the format of the response, such as JSON or XML.
Q40. What does the '[Consumes]' attribute do?
Answer
The '[Consumes]' attribute specifies the content types that a controller action can consume. It indicates the format of the request body, such as JSON or XML.
Performance and Optimization
Q41. What does the '[ResponseCache]' attribute do?
Answer
The '[ResponseCache]' attribute configures response caching for a controller action. It allows you to specify caching parameters like duration and location.
Q42. What does the '[OutputCache]' attribute do?
Answer
The '[OutputCache]' attribute caches the output of a controller action. It improves performance by reducing the number of requests to the server.
Q43. What does the '[DisableRequestSizeLimit]' attribute do?
Answer
The '[DisableRequestSizeLimit]' attribute disables the request size limit for a controller action. It allows the action to accept large requests.
Q44. What does the '[RequestSizeLimit]' attribute do?
Answer
The '[RequestSizeLimit]' attribute specifies the maximum request size for a controller action. It helps in preventing denial-of-service attacks.
Q45. What does the '[RequestFormLimits]' attribute do?
Answer
The '[RequestFormLimits]' attribute specifies the limits for form data in a controller action. It helps in preventing denial-of-service attacks by limiting the size of form submissions.
Security
Q46. What does the '[ValidateNever]' attribute do?
Answer
The '[ValidateNever]' attribute excludes a property from model validation. It prevents validation rules from being applied to specific properties.
Q47. What does the '[IgnoreAntiforgeryToken]' attribute do?
Answer
The '[IgnoreAntiforgeryToken]' attribute disables anti-forgery token validation for a controller action. It is used when anti-forgery token validation is not required.
Q48. What does the '[AllowHtml]' attribute do?
Answer
The '[AllowHtml]' attribute allows HTML content in a property. It disables HTML encoding for specific properties.
Q49. What does the '[HiddenInput]' attribute do?
Answer
The '[HiddenInput]' attribute renders a property as a hidden input field in a form. It includes data in a form submission without displaying it to the user.
Q50. What does the '[Editable]' attribute do?
Answer
The '[Editable]' attribute specifies whether a property is editable in a form. It controls the visibility and editability of properties in views.