Tolga, pekala dostum.
O halde sana önerilerimi sıralamaya başlıyım.
Scriptleri (javascript kodları), sunucu tarafında (yani senin dediğin C# tarafında) çalıştırmak hiçbirimizin tavsiye etmeyeceği bir durum ve hiçte kod etiğine uygun değil, bunu öncelikle bil.
Butona basıncada form rengi dediğin web sayfa arkaplan rengi olduğunu varsayıyorum, yada herhangi bir nesnenin herhangi bir olayını değiştirdiğimizi varsayalım, bunu butona tıkladığında olsun diyorsan javascript ile yapabilirsin ama butona bastığında ve onu controllerda bir actiona bağladığında, o buton senin formunu sunucuya gönderir ve sunucudan geri döndüğünde, sayfa kısaca controllerdan herhangi bir data gönderdiysen o data ile birlikte sayfa yenilenmiş olur öyle söyliyim yani.
Gerisini görsellerle destekleyeceğim.
Anasayfa adındaki Actionı hem GET hemde POST ile bağladım bunun sebebi butona bastığımdada aynı methoda gelsin ve farklı bir Action kullanmadan işi bitirmek için, farklı yöntemleride mevcut, dilersen onlarıda gösterebilirim ama şuan bu yoldan devam edeceğim.
Farkettiysen birde parametre vermişim, bununda kontrolünü içeride yapıyorum ve isColor değerine göre içeride ViewBag.Color'u bağlıyorum. parametre gelmediğinda false döndürür ama ben butona tıkladığımda bunun true olmasını sağlıyorum ve içeride bulunan if kontrolüne sadece butona tıkladığında girmesini sağlıyorum.

Altta gördüğün görsel View tarafım ve farkettiysen butonu Anasayfa adında bir Actiona POST methoduyla bağlamışım birde isColor adında bir parametre vermişim ve Actiona bu değişkeni true olarak göndermişim. Action tarafında isColor değişkenini neden kontrol ettiğimi anlamışsındır umarım.
Birde farkettiysen <html> başlangıç tagına style attribute atamışım ama değerini ViewBag.Color'dan alıyor. Artık ViewBag.Color'un controller tarafında if kontrolünün içerisine girdikten sonra neden ve nasıl doldurduğumu anlamışsındır.
ViewBag.Color dolu gelirse style özelliği o şekilde dolduracak ama boş gelirse hiçbirşey olmayacak. <html> tagına vermemin sebebi tamamen tüm sayfanın arkaplan rengini değiştirmem, sen istediğin elemana verebilirsin bunu.

Artık uygulamaya geçelim.
Arplan rengimiz şuan varsayılan, yani ViewBag.Color boş.

Butona tıkladığımda, bağladığım actiona gidiyor, isColor true gittiği için, action içindeki if kontrolüne düşüyor ve ViewBag.Color = "backgroun-color:red" oluyor. (sana tavsiyem style özelliği olarak değil, css olarak tanımlaman.)
Sayfa yüklendiğinde ViewBag.Color dolu geldiğinden ve style özelliği verdiğinden, <html> tagının style özelliği yükleniyor.
Birde butonda arkaplan rengimi mavi yap dediğime bakma ben style olarak red vermişim 😃

Bir çok yolla çözebilirsin bunu ama ben sana bir tanesini gösterdim.
Birde Asp.NET Core MVC ile gösterdim, sen Core kullanmıyor olabilirsin onunda farkı şudur senin geliştirdiğin projede. View içerisinde Form olaylarının ve parametre gönderme olaylarının yazım şekli farklı ama mantık aynı.
Hadi bakalım bir dene..
Geridönüşünü mutlaka bekliyorum.
Soruların olacağını biliyorum, onlarıda mutlaka bekliyorum. 😅