I have started learning `ASP.Net MVC`, I have few questions with regards to `MVC framework` [Client Side or Server Side]. You might find these questions stupid but I am really confused and would like to clear my doubts.

Here it is....

1. `ASP.Net MVC`, is it server side or client side framework?
2. Let's say my controller methods getting data from the `SQL Server`, I convert it into `JSON` and updating the `MVC view`, in this case

A. Is it called as Client side data binding or Server side binding? 

B. While retrieving the data from database using controller method, do i get entire HTML along with data in the response or just the data that I have requested for?

3. In `ASP.Net`, lets say I am inserting data in database on button click event and If I am not wrong, in this case it will submit the entire page to the server, how button click event works in `ASP.Net MVC`?
4. I have also read that we can use `Angular.JS` or `knockout.JS` with `ASP.Net MVC`, what purpose `Angular.JS` or `knockout.JS` would solve if we use it with `ASP.Net MVC`?

Regards