C# is the language you use to do all your server side programming like interacting with a database, and consuming the .NET base class library/framework.
ASP.NET is the framework where you develop the web pages, this includes all the web and html controls, the rendering to HTML etc
So to create a dynamic site you will need both a server side language C#/VB.NET + ASP.NET for the web pages and its related framework for authentication, state and session management etc
ASP stands for Active Server Pages. It is commonly known as Classic ASP or ASP Classic. It is a server-side scripting environment that is developed and released by Microsoft. C#, also known as C sharp, is an object oriented programming language. C# is a multi-paradigm programming language. It includes strong typing, imperative, declarative, functional, procedural, generic, object-oriented (class-based), and component-oriented programming disciplines.
As it based on the C language, it is quite similar to it. It even shares some syntactic conventions with C. However, a disadvantage of C# is that, as it was developed by Microsoft for use in its .NET framework, it only works on Microsoft operating systems.
Both C# and ASP.NET are by Microsoft for its.NET framework. The main difference between the two is that ASP.NET is Server-side Scripting Language, whereas C# is a programming language. C# is often used as a programming language to develop applications in ASP.NET. C# is a CLS programming language designed for the .NET framework. Whereas, ASP.NET is part of the .NET framework allowing one to write web applications using any CLS compliant language such as C#, VB.NET, F#, etc