A web browser, regardless of which, can only communicate to a web server via an HTTP REQUEST, which come in two flavors: POST, and GET.
POST = A form.
GET = A querystring.
That's all.
A server-side language, such as ASP.NET or any other, can only generate a RESPONSE. That response can be any document for which there is a corresponding MIME type. If HTML, you can place HTML, CSS, and JavaScript in the response.
Despite all the fancy bells and whistles in ASP.NET, all it does is generate RESPONSE objects. It can do all sorts of fancy stuff along the way, but that's the final result.
There are a couple of different mechanisms for shuttling values between the client and server.
One of them is the
ViewState, which on the client side is a big nasty encoded hidden input element, but on the server-side becomes an "object" with methods and properties.
The other is to
use ASP.NET to create client-side scripts and place them in the RESPONSE.