Search⌘ K
AI Features

A Very Simple Application

Explore how to build a simple ASP.NET Core MVC application that supports adding and editing customers. Understand how to simulate a database using a singleton pattern and GUID as unique keys, handle form validations, and improve user feedback with TempData messages. This lesson provides practical code examples for controllers, views, and routing.

In this lesson, we will modify the customer-list example we saw in previous lessons to turn it into a complete toy-application. More specifically, we will give the user the ability to edit and add new customers.

The application is a toy because it is very simple and we will not store customers in an actual database, but we use a simple class that simulates a customers database table. Our database class implements the singleton pattern and contains the instance of the table-simulation class in an Instance property. Moreover, we add a principal key Id property to give a unique identity to each customer. The Id property will contain a string created by converting a Guid to a string. This way, we ensure that the Id is unique without using difficult-to-manage auto-increment counters.

The Guid strings are not just a trick for the easy implementation of a database simulation but are used in popular distributed databases such as MongoDB and Cosmos DB to avoid the burden of centralized counting.

We also added a Salary decimal field in order to show how non-integer numerical fields are dealt with.

The application structure

The HomeController contains an Index method that returns all customers and the [HttpGet] and [HttpHost] versions of both an Edit method and an Add method. The Edit method modifies existing users while Add adds new customers.

The user enters the Edit page by clicking a link in a new column we added to the HTML table that lists all users:

The a tag refers to our newly added Edit method. We used nameof to avoid writing the name of the method as a constant string, which would be an error-prone practice. Moreover, method names written as constant strings cannot be retrieved by engineering tools during code maintenance (tools like “find all occurrences of”). The Edit ...