The rendered page can contain javascript, jquery, and other scripting mechanisms. Those things sit squarely in the view, and do all of their work client-side (in the browser).
The rest of it (model and controller) run on the server. Much of the view itself is rendered from the server side.
Here is a small example of a view that groups data together and renders output to the browser.
<ul>
<% foreach (var group in Model.GroupBy(item => item.Category)) { %>
<li><%= Html.Encode(group.Key) %>
<ul>
<% foreach (var item in group) { %>
<li><%= Html.Encode(item.Data) %></li>
<% } %>
</ul>
</li>
<% } %>
</ul>
Notice that there is no javascript in there. This code runs entirely from the server. The li and ul tags are passed through to the browser, creating an unordered list of list items.
The output looks something like this in the browser:
Key1
Data1
Data2
Data3
Key2
Data4
Data5
..etc.
Note that the code ALL sits on the server, but some of it is executed on the server and some of it (the HTML and Javascript) is passed to the browser and executed there.