scriptタグにrunat="server"を付けることで、C#の分離コード(コードビハインド)を".aspx"側に持ってくることが出来る。
サーバー側オブジェクト タグ構文 | Microsoft Docs
runat.aspxで、
JavaScript側のscriptタグとは別に、C#側のrunat="server"付きscriptタグを用意し、そこにrunat.aspx.csにあったメソッドを持ってくる。
これでrunat.aspx.csは、
空の状態。

最初。
button1を押すと、

まずはJavaScript側のalertが出る。
そして、

C#側のサーバコントロールイベント処理によりbutton1のテキストが変わる。
Sample/aspnet/runat/script/src/runat at master · bg1bgst333/Sample · GitHub