Front-end week Front-end week
This week up to 80% off on HTML/CSS and JavaScript courses.

Lesson 16 - E-shop in ASP.NET Core MVC - Persons - ViewModels

In the previous lesson, E-shop in ASP.NET Core MVC - Persons - Designing entities, we prepared person entities. In today's ASP.NET Core MVC tutorial, we're going to prepare the viewmodels we need for editing those entities and have a look at how to write a custom annotation.

Application layer

All data for the prepared entities will be filled in by the user when registering, editing their profile or purchasing without registration. Because the forms are going to look very similar, let's create a partial base view for them. The viewmodels will be similar as well; we can create a base class and inherit the individual viewmodels from it.

The form for shopping without an account and the register form are basically the same. Both have to include fields for the properties of the PersonDetail entity, and the fields for the Address entity properties will be included even twice (the billing and shipping addresses may be different). Both forms will also contain fields for entering and confirming a password needed to create the User entity. These fields will be optional only when shopping without an account. When editing the profile, fields for defining bank information will be included as well.

The interesting thing will be using custom annotations in situations where those in the basic libraries aren't enough. For extended validation using custom rules, we can either use NuGet packages (such as FluentValidatiĀ­on), or we can write the validation attributes by ourselves. Since you can surely already work with NuGet at this point, let's create our own annotations using a little bit of reflection (that's when the program inspects itself in the runtime) :-) They will be relatively simple, but you're going to like this new approach and programming possibilities for sure :)

Viewmodels

The base viewmodel with all common properties could look like this (notice the SelectList that fills the dropdowns with the stored states):


 

...End of the preview...

Commercial article (licence no-reselling)

Commercial article (licence no-reselling)

This article is based on many years of experience in the IT field, and describes how to develop a professional commercial product or parts, that can be directly used to generate profit or to get as a gate into the industry.

This knowledge is only can only be used properly by the members of our community who are working their way up to become IT professionals. Therefore, this knowledge is only available in exchange for points. You can use the source code from this article for one commercial project. However, you will not be able to resell it. Simply put, you can't buy our article once and then sell our code multiple times. If you need to use this code a bit more extensively, we are ready to discuss Commercial licence options with you. You can find more info on this in the following article Licence.

Are you ready to become a professional? All you have to do is click here!.

Article description

Requested article covers this content:

In this ASP.NET Core tutorial, we'll add viewmodels for person editing forms. The viewmodels will have advanced annotations, including our custom ones.

Limited offer: Learn all knowledge and save money

Buy articles and tests separately one by one 750 points
Buy the course including all articles and features for an exclusive price 638 points
Currently, you have 0 points
By buying this exclusive package, you'll have access to all 26 articles in this course including exercise submitting while saving $10.12. This offer is limited for the first articles only with an additional exclusive 15% discount.
You gain 638 points for adding an article to the site, or for $67.50 $57.37

Buy just this article

Warning, by buying just this article you'll lose the limited 15% discount for the package of all the articles.

To access the article, you need 30 points
Currently, you have 0 points
You gain 30 points for adding an article to the site, or for $2.70

Before buying this article, you have to buy the previous one

Buying this article gives you unlimited access to it forever. You will learn some more and help us keep giving our site maintenance which helps you and others get better futures. It's a win-win.

This article is licensed :Premium no-reselling II, by buying this article, you agree with the terms of use.

You gain points by supporting our network. This is done by sending a helpful amount of money to support the site, or by creating content for the network.

You can get points immediately using:

Credit card SMS Wire transfer
Credit card SMS Wire transfer

 

Activities (2)