Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: Yes—but avoid heavy operations that run per action. Real-world example (ShopNest) ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading b…
Short answer: IOptionsMonitor) IOptions<T>: For singleton/config services. IOptionsSnapshot<T>: Scoped; updates per request. IOptionsMonitor<T>: Singleton; can react to config changes. services.Configur…
Short answer: Use IOptions or DI into constructor. Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller. Say this in…
Short answer: there Use IHostedService or BackgroundService for tasks that run in the background. Services are injected via constructor. Scoped services must use IServiceScopeFactory. Real-world example (ShopNest) ShopNe…
Short answer: When exceptions must be caught outside MVC (e.g., authorization failures). Say this in the interview Define — one clear sentence (the short answer above). Example — relate it to a project like ShopNest or y…
Short answer: IConfiguration is automatically registered and injected via constructor. public MyService(IConfiguration config) Example code { var key = config["MyKey"]; } Real-world example (ShopNest) A ShopNes…
Short answer: dd custom validation and authorization filters using .AddEndpointFilter(). Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same r…
Short answer: ASP.NET Core provides structured logging via ILogger<T>. public class MyService Example code { private readonly ILogger<MyService> _logger; public MyService(ILogger<MyService> logger) =>…
Short answer: Yes—result filters can wrap or modify responses. Real-world example (ShopNest) A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.…
Short answer: Occurs when two services depend on each other directly or indirectly. 🛠 Fix: Refactor to remove circular reference Use Lazy<T> or factory injection Split responsibilities Real-world example (ShopNest…
Short answer: A filter that tracks performance of controller actions: public class ProfilingFilter : IAsyncActionFilter Example code { public async Task OnActionExecutionAsync( ActionExecutingContext context, ActionExecu…
Short answer: Use a mocking framework like Moq: var mockService = new Mock<IMyService>(); mockService.Setup(s => s.Get()).Returns("test"); var controller = new MyController(mockService.Object); Mocking…
Short answer: MVC Routing: Uses attribute routing or conventional routing. Example code endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); Razor Pages R…
Short answer: }"); Razor Pages Routing: Based on folder structure. URL /Products/Edit maps to /Pages/Products/Edit.cshtml. Real-world example (ShopNest) A ShopNest checkout request flows through middleware, hits a m…
Short answer: view or JSON). View: .cshtml file that renders HTML. View Component: Reusable mini-views with logic (like partials but with code-behind). Real-world example (ShopNest) A ShopNest checkout request flows thro…
Short answer: Controller: Handles HTTP requests. Action Method: A method in the controller that returns a result (like a view or JSON). View: .cshtml file that renders HTML. View Component: Reusable mini-views with logic…
Short answer: Tag Helpers: Use HTML-like syntax. Easier to read/maintain. <form asp-controller="Home" asp-action="Login"></form> HTML Helpers: C# methods used in Razor. @Html.BeginForm(&qu…
Short answer: ta cross requests No Preserved for 1 redirect only Real-world example (ShopNest) ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bu…
Short answer: Purpose ViewDa ta Current request No Pass data to views ViewBa Current request Yes ViewData wrapper (dynamic) TempD ata Across requests No Preserved for 1 redirect only Real-world example (ShopNest) ShopNes…
Short answer: Automatically maps form values, query strings, route data to C# model properties. public IActionResult Submit(User user) { ... } Binds complex types and simple types out-of-the-box. Real-world example (Shop…
Short answer: Decorate model properties: public class User { [Required] [EmailAddress] public string Email { get; set; } } Automatically validated during model binding. Use ModelState.IsValid to check. Example code Decor…
Short answer: IValidatableObject: public IEnumerable<ValidationResult> Validate(ValidationContext context) Custom Attribute: public class MyCustomAttribute : ValidationAttribute { Example code public override bool…
Short answer: Layouts: Shared structure (e.g. header, footer) using _Layout.cshtml. Partial Views: Reusable UI snippets (_LoginPartial.cshtml). View Components: Partial views with logic. public class CartViewComponent :…
Short answer: Via ViewBag / ViewData / Model: return View(model); // Strongly typed ViewBag.Message = "Hello"; ViewData["Count"] = 5; Example code Via ViewBag / ViewData / Model: return View(model); /…
Short answer: ActionFilter: Runs before/after action method. ResultFilter: Runs before/after view result. ExceptionFilter: Catches unhandled exceptions. Apply globally or via attributes. public class LogActionFilter : IA…
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Yes—but avoid heavy operations that run per action.
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: IOptionsMonitor) IOptions<T>: For singleton/config services. IOptionsSnapshot<T>: Scoped; updates per request. IOptionsMonitor<T>: Singleton; can react to config changes. services.Configure<MySettings>(Configuration.GetSection("MySettings" ));
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Use IOptions or DI into constructor.
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: there Use IHostedService or BackgroundService for tasks that run in the background. Services are injected via constructor. Scoped services must use IServiceScopeFactory.
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: When exceptions must be caught outside MVC (e.g., authorization failures).
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: IConfiguration is automatically registered and injected via constructor. public MyService(IConfiguration config)
{
var key = config["MyKey"];
}
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: dd custom validation and authorization filters using .AddEndpointFilter().
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: ASP.NET Core provides structured logging via ILogger<T>. public class MyService
{
private readonly ILogger<MyService> _logger;
public MyService(ILogger<MyService> logger) => _logger = logger;
public void DoSomething() => _logger.LogInformation("Action performed"); }
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Yes—result filters can wrap or modify responses.
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Occurs when two services depend on each other directly or indirectly. 🛠 Fix: Refactor to remove circular reference Use Lazy<T> or factory injection Split responsibilities
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: A filter that tracks performance of controller actions: public class ProfilingFilter : IAsyncActionFilter
{
public async Task OnActionExecutionAsync( ActionExecutingContext context, ActionExecutionDelegate next) {
var sw = Stopwatch.StartNew();
var result = await next(); sw.Stop(); Console.WriteLine($"Action took {sw.ElapsedMilliseconds}ms"); }
}
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Use a mocking framework like Moq: var mockService = new Mock<IMyService>(); mockService.Setup(s => s.Get()).Returns("test"); var controller = new MyController(mockService.Object); Mocking helps isolate the unit of work and test behavior independently. MVC & Razor Pages
Use a mocking framework like Moq: var mockService = new Mock<IMyService>();
mockService.Setup(s => s.Get()).Returns("test");
var controller = new MyController(mockService.Object); Mocking helps isolate the unit of work and test behavior independently. MVC & Razor Pages
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: MVC Routing: Uses attribute routing or conventional routing.
endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); Razor Pages Routing: Based on folder structure. URL /Products/Edit maps to /Pages/Products/Edit.cshtml.
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: }"); Razor Pages Routing: Based on folder structure. URL /Products/Edit maps to /Pages/Products/Edit.cshtml.
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: view or JSON). View: .cshtml file that renders HTML. View Component: Reusable mini-views with logic (like partials but with code-behind).
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Controller: Handles HTTP requests. Action Method: A method in the controller that returns a result (like a view or JSON). View: .cshtml file that renders HTML. View Component: Reusable mini-views with logic (like partials but with code-behind).
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Tag Helpers: Use HTML-like syntax. Easier to read/maintain. <form asp-controller="Home" asp-action="Login"></form> HTML Helpers: C# methods used in Razor. @Html.BeginForm("Login", "Home") ✅ Prefer Tag Helpers in modern ASP.NET Core apps.
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: ta cross requests No Preserved for 1 redirect only
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Purpose ViewDa ta Current request No Pass data to views ViewBa Current request Yes ViewData wrapper (dynamic) TempD ata Across requests No Preserved for 1 redirect only
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Automatically maps form values, query strings, route data to C# model properties. public IActionResult Submit(User user) { ... } Binds complex types and simple types out-of-the-box.
ShopNest registers AppDbContext as Scoped and IMemoryCache as Singleton. Putting DbContext in a Singleton causes threading bugs.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Decorate model properties: public class User { [Required] [EmailAddress] public string Email { get; set; } } Automatically validated during model binding. Use ModelState.IsValid to check.
Decorate model properties: public class User { [Required] [EmailAddress] public string Email { get; set; }
} Automatically validated during model binding. Use ModelState.IsValid to check.
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: IValidatableObject: public IEnumerable<ValidationResult> Validate(ValidationContext context) Custom Attribute: public class MyCustomAttribute : ValidationAttribute {
public override bool IsValid(object value) { ... }
}
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Layouts: Shared structure (e.g. header, footer) using _Layout.cshtml. Partial Views: Reusable UI snippets (_LoginPartial.cshtml). View Components: Partial views with logic. public class CartViewComponent : ViewComponent {
public IViewComponentResult Invoke() => View("Cart", model); }
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: Via ViewBag / ViewData / Model: return View(model); // Strongly typed ViewBag.Message = "Hello"; ViewData["Count"] = 5;
Via ViewBag / ViewData / Model: return View(model); // Strongly typed
ViewBag.Message = "Hello";
ViewData["Count"] = 5;
A ShopNest checkout request flows through middleware, hits a minimal API or controller, uses scoped services, and returns ProblemDetails on errors.
ASP.NET Core ASP.NET Core Tutorial · ASP.NET Core
Short answer: ActionFilter: Runs before/after action method. ResultFilter: Runs before/after view result. ExceptionFilter: Catches unhandled exceptions. Apply globally or via attributes. public class LogActionFilter : IActionFilter { ... }
A ShopNest ValidateModelAttribute runs before actions and returns 400 if ModelState is invalid—same rule for every controller.