Question: I am trying to find out real need of Angularjs framework use with ASP.NET MVC. As I am not wrong, ASP.NET has it own ans strong routing engine, MVC framework and it works as loading views (templates) into master page. 

Angular's data binding feature (+1 point). 

I understand and recommend to use WebAPI with AngularJS as in that case webAPI only provides data and not frontend(views). 

I see couple of articles and blogs, and most of all say about how to use, and I am using too, however now I came across this question **WHY**? and really required?

May be my question is not up to the level, however can have valid point.

Answer: 
AngularJS and ASP.NET MVC do perform similar functions. But they go about it in very different ways.

AngularJS does its work on the client-side while ASP.NET does its heavy lifting on the server.

So what?
The difference between these approaches leads to a bunch of differences in implementation and user experience. In general here are some of the Pro's and Con's:

**AngularJS = Client-side execution**

*Pros*

* More responsive page reactions to user changes
* Easier to maintain state: Client can keep things in memory for life of app.

*Cons*

* Longer load time on initial page load.
* May need to write some validation twice, since you should still validate on the server side.
* Dependencies on client-side environment, which can be harder to control than the server. (For example, your code could run slowly because the user's computer is slow.)

**ASP.NET MVC = Server execution**

*Pros*

* Uses well-known POST and GET requests for every page load.
* State is cleared out on every request, which can be more predictable (but this is also a pain.)
* Server environment is more easily controlled than client environment.
* Provides easier tracking and logging of behavior.
* Can usually use same objects and language that back-end layers are written in.

*Cons*

* Requires more network traffic, as every page load must go to server and back. Usually slower for end user.
* Each page load is a complete page load. You'll see the navigation bar flash as the page is reloaded.
* State is cleared out on every request.

There are many other differences but these are the first to spring to mind.
I have done AngularJS with ASP.NET MVC, in fact what I usually do is a combination of Angular + MVC + WebAPI.

I usually have a ASP.NET MVC View for each angular application within my whole webpage.

For example. I have a login MVC view that is served to the browser, but that page has other functionalities in it, like a send feedback form, and other user interactive features that dont require the MVC view to change, for those functionalities, I use angular to send AJAX calls, manipulate the DOM, etc.

I would have another MVC view when the user is logged in, and within that view another angularjs application, here, if needed I could have a ng-route views within the MVC view if neeed.

And another angularJS app in an additional MVC view, etc, etc, you see the point... all the AJAX calls from angular are received by the WebAPI controller in the back end, and the MVC controller just handles the change of MVC views.

It would depend on your specific project if you want do lots of code in razor sintax before serving the MVC view, or if you would leave that to angular at the front end.

My two cents.

Edit:
I guess I never answered the question why use it this way? Because it works great and it allows you the FLEXIBILITY to go heavy on the code on the razor view, or heavy on angular/javascript side >> which I always do =)