ASP.NET
Initially this is what we call WebForms today. WebForms was heavily used, but it has already fallen into disuse and apparently fell on staff disgust. I can not say in detail, but the idea of WebForms was to build a web application that was more like desktop applications, trying to maintain state. You can see some status information in What is a "stateless protocol," such as HTTP? .
Nowadays the name represents more the platform itself. So, in Visual Studio, to create a web application, you first have to choose the ASP.NET Application and then you must specify whether it is WebForms, MVC, WebAPI, etc.
Each of these "types" have a different way of working, they range from the philosophy and design pattern to how the code is written.
ASP.NET MVC
It is an ASP.NET "project type" that follows the MVC (Model-View-Controller) standard - you can read more about the MVC standard at What is MVC (Model, View, Controller)? . In it, ASP.NET Razor is practically intrinsic (see below) as view engine , in the old versions it was still possible to choose between Razor and is called ASPX (which also ended up falling out of use).
ASP.NET WebAPI
It is also an ASP.NET project type that is intended to serve HTTP requests (just like in ASP.NET MVC), but without having to worry about views (unlike ASP. NET MVC).
In any case, the project organization is very similar to ASP.NET MVC.
ASP.NET Core
is the new ASP.NET . Yes, the framework has been redesigned and rewritten (as well as the .NET Framework). This has already had other names such as: ASP.NET vNext or ASP.NET 5, such as seen here .
ASP.NET Razor
It's the view engine behind ASP.NET MVC applications (and also in Core applications). This tool is responsible for rendering the code written in the .cshtml , .vbhtml and similar files to HTML code. For more details on view engines you can read the question What is a Engine? , more specifically the Maniero's answer that talks about Razor itself.
In ASP.NET Core, there is also ASP.NET Razor Pages. It is a kind of simplification of what already exists in ASP.NET Core MVC. It is recommended for simpler cases that do not require all MVC bureaucracy.